On the OpenID settings page, allow users to remove trustroots.
This commit is contained in:
parent
689e2e112b
commit
9466546705
@ -176,6 +176,43 @@ class OpenidsettingsAction extends AccountSettingsAction
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->elementStart('form', array('method' => 'post',
|
||||||
|
'id' => 'form_settings_openid_trustroots',
|
||||||
|
'class' => 'form_settings',
|
||||||
|
'action' =>
|
||||||
|
common_local_url('openidsettings')));
|
||||||
|
$this->elementStart('fieldset', array('id' => 'settings_openid_trustroots'));
|
||||||
|
$this->element('legend', null, _m('OpenID Trusted Sites'));
|
||||||
|
$this->hidden('token', common_session_token());
|
||||||
|
$this->element('p', 'form_guide',
|
||||||
|
_m('The following sites are allowed to access your ' .
|
||||||
|
'identity and log you in. You can remove a site from ' .
|
||||||
|
'this list to deny it access to your OpenID.'));
|
||||||
|
$this->elementStart('ul', 'form_data');
|
||||||
|
$user_openid_trustroot = new User_openid_trustroot();
|
||||||
|
$user_openid_trustroot->user_id=$user->id;
|
||||||
|
if($user_openid_trustroot->find()) {
|
||||||
|
while($user_openid_trustroot->fetch()) {
|
||||||
|
$this->elementStart('li');
|
||||||
|
$this->element('input', array('name' => 'openid_trustroot[]',
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'class' => 'checkbox',
|
||||||
|
'value' => $user_openid_trustroot->trustroot,
|
||||||
|
'id' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)));
|
||||||
|
$this->element('label', array('class'=>'checkbox', 'for' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)),
|
||||||
|
$user_openid_trustroot->trustroot);
|
||||||
|
$this->elementEnd('li');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->elementEnd('ul');
|
||||||
|
$this->element('input', array('type' => 'submit',
|
||||||
|
'id' => 'settings_openid_trustroots_action-submit',
|
||||||
|
'name' => 'remove_trustroots',
|
||||||
|
'class' => 'submit',
|
||||||
|
'value' => _m('Remove')));
|
||||||
|
$this->elementEnd('fieldset');
|
||||||
|
$this->elementEnd('form');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -204,11 +241,44 @@ class OpenidsettingsAction extends AccountSettingsAction
|
|||||||
}
|
}
|
||||||
} else if ($this->arg('remove')) {
|
} else if ($this->arg('remove')) {
|
||||||
$this->removeOpenid();
|
$this->removeOpenid();
|
||||||
|
} else if($this->arg('remove_trustroots')) {
|
||||||
|
$this->removeTrustroots();
|
||||||
} else {
|
} else {
|
||||||
$this->showForm(_m('Something weird happened.'));
|
$this->showForm(_m('Something weird happened.'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handles a request to remove OpenID trustroots from the user's account
|
||||||
|
*
|
||||||
|
* Validates input and, if everything is OK, deletes the trustroots.
|
||||||
|
* Reloads the form with a success or error notification.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
|
||||||
|
function removeTrustroots()
|
||||||
|
{
|
||||||
|
$user = common_current_user();
|
||||||
|
$trustroots = $this->arg('openid_trustroot');
|
||||||
|
if($trustroots) {
|
||||||
|
foreach($trustroots as $trustroot) {
|
||||||
|
$user_openid_trustroot = User_openid_trustroot::pkeyGet(
|
||||||
|
array('user_id'=>$user->id, 'trustroot'=>$trustroot));
|
||||||
|
if($user_openid_trustroot) {
|
||||||
|
$user_openid_trustroot->delete();
|
||||||
|
} else {
|
||||||
|
$this->showForm(_m('No such OpenID trustroot.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->showForm(_m('Trustroots removed'), true);
|
||||||
|
} else {
|
||||||
|
$this->showForm();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles a request to remove an OpenID from the user's account
|
* Handles a request to remove an OpenID from the user's account
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user