]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
OAuth app names should be unique.
authorZach Copley <zach@status.net>
Mon, 1 Feb 2010 20:58:29 +0000 (20:58 +0000)
committerZach Copley <zach@status.net>
Tue, 2 Feb 2010 08:50:01 +0000 (08:50 +0000)
actions/editapplication.php
actions/newapplication.php
classes/statusnet.ini
db/statusnet.sql

index 9cc3e3cead0cac9670a11f2761d7e0f5d9f11118..029b622e84b3c6710a22fed339f48867a505256a 100644 (file)
@@ -179,6 +179,9 @@ class EditApplicationAction extends OwnerDesignAction
         } elseif (mb_strlen($name) > 255) {
             $this->showForm(_('Name is too long (max 255 chars).'));
             return;
+        } else if ($this->nameExists($name)) {
+            $this->showForm(_('Name already in use. Try another one.'));
+            return;
         } elseif (empty($description)) {
             $this->showForm(_('Description is required.'));
             return;
@@ -260,5 +263,26 @@ class EditApplicationAction extends OwnerDesignAction
         common_redirect(common_local_url('oauthappssettings'), 303);
     }
 
+    /**
+     * Does the app name already exist?
+     *
+     * Checks the DB to see someone has already registered and app
+     * with the same name.
+     *
+     * @param string $name app name to check
+     *
+     * @return boolean true if the name already exists
+     */
+
+    function nameExists($name)
+    {
+        $newapp = Oauth_application::staticGet('name', $name);
+        if (!$newapp) {
+            return false;
+        } else {
+            return $newapp->id != $this->app->id;
+        }
+    }
+
 }
 
index c499fe7c76ed995bcb9896448dc410f3738cccfb..ba1cca5c928ab6704a8b283f450b261972999574 100644 (file)
@@ -158,6 +158,9 @@ class NewApplicationAction extends OwnerDesignAction
         if (empty($name)) {
              $this->showForm(_('Name is required.'));
              return;
+        } else if ($this->nameExists($name)) {
+            $this->showForm(_('Name already in use. Try another one.'));
+            return;
         } elseif (mb_strlen($name) > 255) {
             $this->showForm(_('Name is too long (max 255 chars).'));
             return;
@@ -273,5 +276,22 @@ class NewApplicationAction extends OwnerDesignAction
 
     }
 
+    /**
+     * Does the app name already exist?
+     *
+     * Checks the DB to see someone has already registered and app
+     * with the same name.
+     *
+     * @param string $name app name to check
+     *
+     * @return boolean true if the name already exists
+     */
+
+    function nameExists($name)
+    {
+        $app = Oauth_application::staticGet('name', $name);
+        return ($app !== false);
+    }
+
 }
 
index 6203650a693a626d6004908c3a5fe2d43221030a..4ace4407b1ad78c91f1dbb12ed0d95cbabe0842f 100644 (file)
@@ -353,7 +353,7 @@ notice_id = K
 id = 129
 owner = 129
 consumer_key = 130
-name = 130
+name = 2
 description = 2
 icon = 130
 source_url = 2
@@ -367,6 +367,7 @@ modified = 384
 
 [oauth_application__keys]
 id = N
+name = U
 
 [oauth_application_user]
 profile_id = 129
index 17de4fd0d48b0852b197bf1c18f3ded8524a4ac7..71a6e724ca8a26061345722cd46d57fe1f1f6003 100644 (file)
@@ -214,7 +214,7 @@ create table oauth_application (
     id integer auto_increment primary key comment 'unique identifier',
     owner integer not null comment 'owner of the application' references profile (id),
     consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key),
-    name varchar(255) not null comment 'name of the application',
+    name varchar(255) unique key comment 'name of the application',
     description varchar(255) comment 'description of the application',
     icon varchar(255) not null comment 'application icon',
     source_url varchar(255) comment 'application homepage - used for source link',