Confirm dialog for reset OAuth consumer key and secret button

This commit is contained in:
Zach Copley 2010-02-03 01:43:59 +00:00
parent 387374fd7b
commit 03e8ba144e
3 changed files with 51 additions and 7 deletions

View File

@ -266,7 +266,7 @@ class EditApplicationAction extends OwnerDesignAction
/** /**
* Does the app name already exist? * 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. * with the same name.
* *
* @param string $name app name to check * @param string $name app name to check

View File

@ -279,7 +279,7 @@ class NewApplicationAction extends OwnerDesignAction
/** /**
* Does the app name already exist? * 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. * with the same name.
* *
* @param string $name app name to check * @param string $name app name to check

View File

@ -149,7 +149,6 @@ class ShowApplicationAction extends OwnerDesignAction
function showContent() function showContent()
{ {
$cur = common_current_user(); $cur = common_current_user();
$consumer = $this->application->getConsumer(); $consumer = $this->application->getConsumer();
@ -229,7 +228,13 @@ class ShowApplicationAction extends OwnerDesignAction
array('id' => $this->application->id)))); array('id' => $this->application->id))));
$this->elementStart('fieldset'); $this->elementStart('fieldset');
$this->hidden('token', common_session_token()); $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('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
$this->elementEnd('li'); $this->elementEnd('li');
@ -291,14 +296,53 @@ class ShowApplicationAction extends OwnerDesignAction
$this->elementEnd('p'); $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() function resetKey()
{ {
$this->application->query('BEGIN'); $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(); $consumer = $this->application->getConsumer();
$result = $consumer->delete(); $result = $consumer->delete();
if (!$result) { if ($result === false) {
common_log_db_error($consumer, 'DELETE', __FILE__); common_log_db_error($consumer, 'DELETE', __FILE__);
$this->success = false; $this->success = false;
$this->msg = ('Unable to reset consumer key and secret.'); $this->msg = ('Unable to reset consumer key and secret.');
@ -310,7 +354,7 @@ class ShowApplicationAction extends OwnerDesignAction
$result = $consumer->insert(); $result = $consumer->insert();
if (!$result) { if (empty($result)) {
common_log_db_error($consumer, 'INSERT', __FILE__); common_log_db_error($consumer, 'INSERT', __FILE__);
$this->application->query('ROLLBACK'); $this->application->query('ROLLBACK');
$this->success = false; $this->success = false;
@ -323,7 +367,7 @@ class ShowApplicationAction extends OwnerDesignAction
$this->application->consumer_key = $consumer->consumer_key; $this->application->consumer_key = $consumer->consumer_key;
$result = $this->application->update($orig); $result = $this->application->update($orig);
if (!$result) { if ($result === false) {
common_log_db_error($application, 'UPDATE', __FILE__); common_log_db_error($application, 'UPDATE', __FILE__);
$this->application->query('ROLLBACK'); $this->application->query('ROLLBACK');
$this->success = false; $this->success = false;