summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-02-01 20:58:29 +0000
committerZach Copley <zach@status.net>2010-02-01 20:58:30 +0000
commit59d16cf16ac75e18431dfd5452c748e880dafefd (patch)
tree93f183e43b25d1f64b458443d21899eef154c45c /actions
parentc14ac57b1935a124dd4205e0f02d939086b5867e (diff)
OAuth app names should be unique.
Diffstat (limited to 'actions')
-rw-r--r--actions/editapplication.php24
-rw-r--r--actions/newapplication.php20
2 files changed, 44 insertions, 0 deletions
diff --git a/actions/editapplication.php b/actions/editapplication.php
index 9cc3e3cea..029b622e8 100644
--- a/actions/editapplication.php
+++ b/actions/editapplication.php
@@ -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;
+ }
+ }
+
}
diff --git a/actions/newapplication.php b/actions/newapplication.php
index c499fe7c7..ba1cca5c9 100644
--- a/actions/newapplication.php
+++ b/actions/newapplication.php
@@ -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);
+ }
+
}