summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-02-03 01:43:59 +0000
committerZach Copley <zach@status.net>2010-02-03 01:43:59 +0000
commit03e8ba144eadab6e28a96482a1162c4109eca822 (patch)
treefb869f2dca2c2d7812066315d50b4a87ff2cbe56 /actions
parent387374fd7bd189eacefeca672ae35181fab2162c (diff)
Confirm dialog for reset OAuth consumer key and secret button
Diffstat (limited to 'actions')
-rw-r--r--actions/editapplication.php2
-rw-r--r--actions/newapplication.php2
-rw-r--r--actions/showapplication.php54
3 files changed, 51 insertions, 7 deletions
diff --git a/actions/editapplication.php b/actions/editapplication.php
index 029b622e8..ca5dba1e4 100644
--- a/actions/editapplication.php
+++ b/actions/editapplication.php
@@ -266,7 +266,7 @@ class EditApplicationAction extends OwnerDesignAction
/**
* Does the app name already exist?
*
- * Checks the DB to see someone has already registered and app
+ * Checks the DB to see someone has already registered an app
* with the same name.
*
* @param string $name app name to check
diff --git a/actions/newapplication.php b/actions/newapplication.php
index ba1cca5c9..c0c520797 100644
--- a/actions/newapplication.php
+++ b/actions/newapplication.php
@@ -279,7 +279,7 @@ class NewApplicationAction extends OwnerDesignAction
/**
* Does the app name already exist?
*
- * Checks the DB to see someone has already registered and app
+ * Checks the DB to see someone has already registered an app
* with the same name.
*
* @param string $name app name to check
diff --git a/actions/showapplication.php b/actions/showapplication.php
index 020d62480..fa4484481 100644
--- a/actions/showapplication.php
+++ b/actions/showapplication.php
@@ -149,7 +149,6 @@ class ShowApplicationAction extends OwnerDesignAction
function showContent()
{
-
$cur = common_current_user();
$consumer = $this->application->getConsumer();
@@ -229,7 +228,13 @@ class ShowApplicationAction extends OwnerDesignAction
array('id' => $this->application->id))));
$this->elementStart('fieldset');
$this->hidden('token', common_session_token());
- $this->submit('reset', _('Reset key & secret'));
+
+ $this->element('input', array('type' => 'submit',
+ 'id' => 'reset',
+ 'name' => 'reset',
+ 'class' => 'submit',
+ 'value' => _('Reset key & secret'),
+ 'onClick' => 'return confirmReset()'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
$this->elementEnd('li');
@@ -291,14 +296,53 @@ class ShowApplicationAction extends OwnerDesignAction
$this->elementEnd('p');
}
+ /**
+ * Add a confirm script for Consumer key/secret reset
+ *
+ * @return void
+ */
+
+ function showScripts()
+ {
+ parent::showScripts();
+
+ $msg = _('Are you sure you want to reset your consumer key and secret?');
+
+ $js = 'function confirmReset() { ';
+ $js .= ' var agree = confirm("' . $msg . '"); ';
+ $js .= ' return agree;';
+ $js .= '}';
+
+ $this->inlineScript($js);
+ }
+
+ /**
+ * Reset an application's Consumer key and secret
+ *
+ * XXX: Should this be moved to its own page with a confirm?
+ *
+ */
+
function resetKey()
{
$this->application->query('BEGIN');
+ $oauser = new Oauth_application_user();
+ $oauser->application_id = $this->application->id;
+ $result = $oauser->delete();
+
+ if ($result === false) {
+ common_log_db_error($oauser, 'DELETE', __FILE__);
+ $this->success = false;
+ $this->msg = ('Unable to reset consumer key and secret.');
+ $this->showPage();
+ return;
+ }
+
$consumer = $this->application->getConsumer();
$result = $consumer->delete();
- if (!$result) {
+ if ($result === false) {
common_log_db_error($consumer, 'DELETE', __FILE__);
$this->success = false;
$this->msg = ('Unable to reset consumer key and secret.');
@@ -310,7 +354,7 @@ class ShowApplicationAction extends OwnerDesignAction
$result = $consumer->insert();
- if (!$result) {
+ if (empty($result)) {
common_log_db_error($consumer, 'INSERT', __FILE__);
$this->application->query('ROLLBACK');
$this->success = false;
@@ -323,7 +367,7 @@ class ShowApplicationAction extends OwnerDesignAction
$this->application->consumer_key = $consumer->consumer_key;
$result = $this->application->update($orig);
- if (!$result) {
+ if ($result === false) {
common_log_db_error($application, 'UPDATE', __FILE__);
$this->application->query('ROLLBACK');
$this->success = false;