From: brunoccast Date: Tue, 4 Jun 2019 15:55:49 +0000 (+0100) Subject: [OpenID] Add sync confirmation in both OpenID settings and login connection X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=69a1d77480794e0357ce329a0951cf424a9c4204;p=quix0rs-gnu-social.git [OpenID] Add sync confirmation in both OpenID settings and login connection --- diff --git a/plugins/OpenID/actions/finishaddopenid.php b/plugins/OpenID/actions/finishaddopenid.php index e3e100c9e4..12029eb57a 100644 --- a/plugins/OpenID/actions/finishaddopenid.php +++ b/plugins/OpenID/actions/finishaddopenid.php @@ -46,7 +46,7 @@ require_once INSTALLDIR.'/plugins/OpenID/openid.php'; */ class FinishaddopenidAction extends Action { - var $msg = null; + public $msg = null; /** * Handle the redirect back from OpenID confirmation @@ -58,7 +58,7 @@ class FinishaddopenidAction extends Action * * @return void */ - function handle() + public function handle() { parent::handle(); if (!common_logged_in()) { @@ -76,7 +76,7 @@ class FinishaddopenidAction extends Action * * @return void */ - function tryLogin() + public function tryLogin() { $consumer = oid_consumer(); @@ -86,13 +86,14 @@ class FinishaddopenidAction extends Action // TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. $this->message(_m('OpenID authentication cancelled.')); return; - } else if ($response->status == Auth_OpenID_FAILURE) { + } elseif ($response->status == Auth_OpenID_FAILURE) { // TRANS: OpenID authentication failed; display the error message. // TRANS: %s is the error message. - $this->message(sprintf(_m('OpenID authentication failed: %s.'), - $response->message)); - } else if ($response->status == Auth_OpenID_SUCCESS) { - + $this->message(sprintf( + _m('OpenID authentication failed: %s.'), + $response->message + )); + } elseif ($response->status == Auth_OpenID_SUCCESS) { $display = $response->getDisplayIdentifier(); $canonical = ($response->endpoint && $response->endpoint->canonicalID) ? $response->endpoint->canonicalID : $display; @@ -136,17 +137,20 @@ class FinishaddopenidAction extends Action $this->message(_m('Error connecting user.')); return; } - if (Event::handle('StartOpenIDUpdateUser', array($cur, $canonical, &$sreg))) { - if ($sreg) { + + if (isset($_SESSION['openid_sync']) && $_SESSION['openid_sync']) { + if (Event::handle('StartOpenIDUpdateUser', [$cur, $canonical, &$sreg])) { if (!oid_update_user($cur, $sreg)) { // TRANS: Message in case the user or the user profile cannot be saved in StatusNet. $this->message(_m('Error updating profile.')); return; } } + Event::handle('EndOpenIDUpdateUser', [$cur, $canonical, $sreg]); } - Event::handle('EndOpenIDUpdateUser', array($cur, $canonical, $sreg)); + unset($_SESSION['openid_sync']); + // success! $cur->query('COMMIT'); @@ -166,7 +170,7 @@ class FinishaddopenidAction extends Action * * @return void */ - function message($msg) + public function message($msg) { $this->message = $msg; $this->showPage(); @@ -177,7 +181,7 @@ class FinishaddopenidAction extends Action * * @return string title */ - function title() + public function title() { // TRANS: Title after getting the status of the OpenID authorisation request. return _m('OpenID Login'); @@ -188,7 +192,7 @@ class FinishaddopenidAction extends Action * * @return void */ - function showPageNotice() + public function showPageNotice() { if ($this->message) { $this->element('p', 'error', $this->message); diff --git a/plugins/OpenID/actions/finishopenidlogin.php b/plugins/OpenID/actions/finishopenidlogin.php index f91d10d252..4ba09624cb 100644 --- a/plugins/OpenID/actions/finishopenidlogin.php +++ b/plugins/OpenID/actions/finishopenidlogin.php @@ -25,17 +25,17 @@ require_once INSTALLDIR.'/plugins/OpenID/openid.php'; class FinishopenidloginAction extends Action { - var $error = null; - var $username = null; - var $message = null; + public $error = null; + public $username = null; + public $message = null; - function handle() + public function handle() { parent::handle(); if (common_is_real_login()) { // TRANS: Client error message trying to log on with OpenID while already logged on. $this->clientError(_m('Already logged in.')); - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { + } elseif ($_SERVER['REQUEST_METHOD'] == 'POST') { $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { // TRANS: Message given when there is a problem with the user's session token. @@ -45,27 +45,31 @@ class FinishopenidloginAction extends Action if ($this->arg('create')) { if (!$this->boolean('license')) { // TRANS: Message given if user does not agree with the site's license. - $this->showForm(_m('You cannot register if you do not agree to the license.'), - $this->trimmed('newname')); + $this->showForm( + _m('You cannot register if you do not agree to the license.'), + $this->trimmed('newname') + ); return; } $this->createNewUser(); - } else if ($this->arg('connect')) { + } elseif ($this->arg('connect')) { $this->connectUser(); } else { // TRANS: Messag given on an unknown error. - $this->showForm(_m('An unknown error has occured.'), - $this->trimmed('newname')); + $this->showForm( + _m('An unknown error has occured.'), + $this->trimmed('newname') + ); } } else { $this->tryLogin(); } } - function showPageNotice() + public function showPageNotice() { if ($this->error) { - $this->element('div', array('class' => 'error'), $this->error); + $this->element('div', ['class' => 'error'], $this->error); } else { $this->element('div', 'instructions', // TRANS: Instructions given after a first successful logon using OpenID. @@ -74,13 +78,13 @@ class FinishopenidloginAction extends Action } } - function title() + public function title() { // TRANS: Title - return _m('TITLE','OpenID Account Setup'); + return _m('TITLE', 'OpenID Account Setup'); } - function showForm($error=null, $username=null) + public function showForm($error=null, $username=null) { $this->error = $error; $this->username = $username; @@ -93,10 +97,10 @@ class FinishopenidloginAction extends Action * Should probably be replaced with an extensible mini version of * the core registration form. */ - function showContent() + public function showContent() { if (!empty($this->message_text)) { - $this->element('div', array('class' => 'error'), $this->message_text); + $this->element('div', ['class' => 'error'], $this->message_text); return; } @@ -107,12 +111,12 @@ class FinishopenidloginAction extends Action // info. The profile will be pre-populated with whatever name, // email, and location we can get from the OpenID provider, so // all we ask for is the license confirmation. - $this->elementStart('form', array('method' => 'post', - 'id' => 'account_create', - 'class' => 'form_settings', - 'action' => common_local_url('finishopenidlogin'))); + $this->elementStart('form', ['method' => 'post', + 'id' => 'account_create', + 'class' => 'form_settings', + 'action' => common_local_url('finishopenidlogin')]); $this->hidden('token', common_session_token()); - $this->elementStart('fieldset', array('id' => 'form_openid_createaccount')); + $this->elementStart('fieldset', ['id' => 'form_openid_createaccount']); $this->element('legend', null, // TRANS: Fieldset legend. _m('Create new account')); @@ -122,39 +126,41 @@ class FinishopenidloginAction extends Action $this->elementStart('ul', 'form_data'); // Hook point for captcha etc - Event::handle('StartRegistrationFormData', array($this)); + Event::handle('StartRegistrationFormData', [$this]); $this->elementStart('li'); // TRANS: Field label. - $this->input('newname', _m('New nickname'), + $this->input('newname', + _m('New nickname'), ($this->username) ? $this->username : '', // TRANS: Field title. _m('1-64 lowercase letters or numbers, no punctuation or spaces.')); $this->elementEnd('li'); $this->elementStart('li'); // TRANS: Field label. - $this->input('email', _m('Email'), $this->getEmail(), + $this->input('email', _m('Email'), + $this->getEmail(), // TRANS: Field title. _m('Used only for updates, announcements, '. - 'and password recovery.')); + 'and password recovery.')); $this->elementEnd('li'); // Hook point for captcha etc - Event::handle('EndRegistrationFormData', array($this)); + Event::handle('EndRegistrationFormData', [$this]); $this->elementStart('li'); - $this->element('input', array('type' => 'checkbox', - 'id' => 'license', - 'class' => 'checkbox', - 'name' => 'license', - 'value' => 'true')); - $this->elementStart('label', array('for' => 'license', - 'class' => 'checkbox')); + $this->element('input', ['type' => 'checkbox', + 'id' => 'license', + 'class' => 'checkbox', + 'name' => 'license', + 'value' => 'true']); + $this->elementStart('label', ['for' => 'license', + 'class' => 'checkbox']); // TRANS: OpenID plugin link text. // TRANS: %s is a link to a license with the license name as link text. $message = _m('My text and files are available under %s ' . - 'except this private data: password, ' . - 'email address, IM address, and phone number.'); + 'except this private data: password, ' . + 'email address, IM address, and phone number.'); $link = '' . @@ -171,12 +177,12 @@ class FinishopenidloginAction extends Action // The second option is to attach this OpenID to an existing account // on the local system, which they need to provide a password for. - $this->elementStart('form', array('method' => 'post', - 'id' => 'account_connect', - 'class' => 'form_settings', - 'action' => common_local_url('finishopenidlogin'))); + $this->elementStart('form', ['method' => 'post', + 'id' => 'account_connect', + 'class' => 'form_settings', + 'action' => common_local_url('finishopenidlogin')]); $this->hidden('token', common_session_token()); - $this->elementStart('fieldset', array('id' => 'form_openid_createaccount')); + $this->elementStart('fieldset', ['id' => 'form_openid_createaccount']); $this->element('legend', null, // TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. _m('Connect existing account')); @@ -192,6 +198,11 @@ class FinishopenidloginAction extends Action // TRANS: Field label in form in which to connect an OpenID to an existing user on the site. $this->password('password', _m('Password')); $this->elementEnd('li'); + $this->elementStart('li'); + // TRANS: Field label in form in which to connect an OpenID to an existing user on the site. + $this->checkbox('openid-sync', _m('Sync Account'), false, + _m('Syncronize GNU social profile with this OpenID identity.')); + $this->elementEnd('li'); $this->elementEnd('ul'); // TRANS: Button text in form in which to connect an OpenID to an existing user on the site. $this->submit('connect', _m('BUTTON', 'Connect')); @@ -205,7 +216,7 @@ class FinishopenidloginAction extends Action * * @return string */ - function getEmail() + public function getEmail() { $email = $this->trimmed('email'); if (!empty($email)) { @@ -232,7 +243,7 @@ class FinishopenidloginAction extends Action return ''; } - function tryLogin() + public function tryLogin() { $consumer = oid_consumer(); @@ -242,10 +253,10 @@ class FinishopenidloginAction extends Action // TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. $this->message(_m('OpenID authentication cancelled.')); return; - } else if ($response->status == Auth_OpenID_FAILURE) { + } elseif ($response->status == Auth_OpenID_FAILURE) { // TRANS: OpenID authentication failed; display the error message. %s is the error message. $this->message(sprintf(_m('OpenID authentication failed: %s.'), $response->message)); - } else if ($response->status == Auth_OpenID_SUCCESS) { + } elseif ($response->status == Auth_OpenID_SUCCESS) { // This means the authentication succeeded; extract the // identity URL and Simple Registration data (if it was // returned). @@ -290,13 +301,13 @@ class FinishopenidloginAction extends Action } } - function message($msg) + public function message($msg) { $this->message_text = $msg; $this->showPage(); } - function saveValues($display, $canonical, $sreg) + public function saveValues($display, $canonical, $sreg) { common_ensure_session(); $_SESSION['openid_display'] = $display; @@ -304,18 +315,18 @@ class FinishopenidloginAction extends Action $_SESSION['openid_sreg'] = $sreg; } - function getSavedValues() + public function getSavedValues() { - return array($_SESSION['openid_display'], - $_SESSION['openid_canonical'], - $_SESSION['openid_sreg']); + return [$_SESSION['openid_display'], + $_SESSION['openid_canonical'], + $_SESSION['openid_sreg']]; } - function createNewUser() + public function createNewUser() { // FIXME: save invite code before redirect, and check here - if (!Event::handle('StartRegistrationTry', array($this))) { + if (!Event::handle('StartRegistrationTry', [$this])) { return; } @@ -364,7 +375,7 @@ class FinishopenidloginAction extends Action $this->serverError(_m('Creating new account for OpenID that already has a user.')); } - Event::handle('StartOpenIDCreateNewUser', array($canonical, &$sreg)); + Event::handle('StartOpenIDCreateNewUser', [$canonical, &$sreg]); $location = ''; if (!empty($sreg['country'])) { @@ -388,10 +399,10 @@ class FinishopenidloginAction extends Action // XXX: add language // XXX: add timezone - $args = array('nickname' => $nickname, - 'email' => $email, - 'fullname' => $fullname, - 'location' => $location); + $args = ['nickname' => $nickname, + 'email' => $email, + 'fullname' => $fullname, + 'location' => $location]; if (!empty($invite)) { $args['code'] = $invite->code; @@ -401,7 +412,7 @@ class FinishopenidloginAction extends Action $result = oid_link_user($user->id, $canonical, $display); - Event::handle('EndOpenIDCreateNewUser', array($user, $canonical, $sreg)); + Event::handle('EndOpenIDCreateNewUser', [$user, $canonical, $sreg]); oid_set_last($display); common_set_user($user); @@ -411,16 +422,17 @@ class FinishopenidloginAction extends Action } unset($_SESSION['openid_rememberme']); - Event::handle('EndRegistrationTry', array($this)); + Event::handle('EndRegistrationTry', [$this]); - common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)), 303); + common_redirect(common_local_url('showstream', ['nickname' => $user->nickname]), 303); } - function connectUser() + public function connectUser() { $nickname = $this->trimmed('nickname'); $password = $this->trimmed('password'); - + $sync = $this->boolean('openid-sync'); + if (!common_check_user($nickname, $password)) { // TRANS: OpenID plugin message. $this->showForm(_m('Invalid username or password.')); @@ -445,10 +457,12 @@ class FinishopenidloginAction extends Action $this->serverError(_m('Error connecting user to OpenID.')); } - if (Event::handle('StartOpenIDUpdateUser', array($user, $canonical, &$sreg))) { - oid_update_user($user, $sreg); + if ($sync) { + if (Event::handle('StartOpenIDUpdateUser', [$user, $canonical, &$sreg])) { + oid_update_user($user, $sreg); + } + Event::handle('EndOpenIDUpdateUser', [$user, $canonical, $sreg]); } - Event::handle('EndOpenIDUpdateUser', array($user, $canonical, $sreg)); oid_set_last($display); common_set_user($user); @@ -460,22 +474,20 @@ class FinishopenidloginAction extends Action $this->goHome($user->nickname); } - function goHome($nickname) + public function goHome($nickname) { $url = common_get_returnto(); if ($url) { // We don't have to return to it again common_set_returnto(null); - $url = common_inject_session($url); + $url = common_inject_session($url); } else { - $url = common_local_url('all', - array('nickname' => - $nickname)); + $url = common_local_url('all', ['nickname' => $nickname]); } common_redirect($url, 303); } - function bestNewNickname($display, $sreg) + public function bestNewNickname($display, $sreg) { // Try the passed-in nickname @@ -508,7 +520,7 @@ class FinishopenidloginAction extends Action return null; } - function openidToNickname($openid) + public function openidToNickname($openid) { if (Auth_Yadis_identifierScheme($openid) == 'XRI') { return $this->xriToNickname($openid); @@ -521,12 +533,12 @@ class FinishopenidloginAction extends Action // 1. Plain hostname, like http://evanp.myopenid.com/ // 2. One element in path, like http://profile.typekey.com/EvanProdromou/ // or http://getopenid.com/evanprodromou - function urlToNickname($openid) + public function urlToNickname($openid) { return common_url_to_nickname($openid); } - function xriToNickname($xri) + public function xriToNickname($xri) { $base = $this->xriBase($xri); @@ -540,7 +552,7 @@ class FinishopenidloginAction extends Action } } - function xriBase($xri) + public function xriBase($xri) { if (substr($xri, 0, 6) == 'xri://') { return substr($xri, 6); diff --git a/plugins/OpenID/actions/openidsettings.php b/plugins/OpenID/actions/openidsettings.php index 9651ec3134..fd35e0f96f 100644 --- a/plugins/OpenID/actions/openidsettings.php +++ b/plugins/OpenID/actions/openidsettings.php @@ -27,7 +27,9 @@ * @link http://status.net/ */ -if (!defined('GNUSOCIAL')) { exit(1); } +if (!defined('GNUSOCIAL')) { + exit(1); +} require_once INSTALLDIR.'/plugins/OpenID/openid.php'; @@ -49,10 +51,10 @@ class OpenidsettingsAction extends SettingsAction * * @return string Page title */ - function title() + public function title() { // TRANS: Title of OpenID settings page for a user. - return _m('TITLE','OpenID settings'); + return _m('TITLE', 'OpenID settings'); } /** @@ -60,16 +62,16 @@ class OpenidsettingsAction extends SettingsAction * * @return string Instructions for use */ - function getInstructions() + public function getInstructions() { // TRANS: Form instructions for OpenID settings. // TRANS: This message contains Markdown links in the form [description](link). return _m('[OpenID](%%doc.openid%%) lets you log into many sites ' . - 'with the same user account. '. - 'Manage your associated OpenIDs from here.'); + 'with the same user account. '. + 'Manage your associated OpenIDs from here.'); } - function showScripts() + public function showScripts() { parent::showScripts(); $this->autofocus('openid_url'); @@ -82,30 +84,36 @@ class OpenidsettingsAction extends SettingsAction * * @return void */ - function showContent() + public function showContent() { if (!common_config('openid', 'trusted_provider')) { - $this->elementStart('form', array('method' => 'post', - 'id' => 'form_settings_openid_add', - 'class' => 'form_settings', - 'action' => - common_local_url('openidsettings'))); - $this->elementStart('fieldset', array('id' => 'settings_openid_add')); + $this->elementStart('form', ['method' => 'post', + 'id' => 'form_settings_openid_add', + 'class' => 'form_settings', + 'action' => + common_local_url('openidsettings')]); + $this->elementStart('fieldset', ['id' => 'settings_openid_add']); // TRANS: Fieldset legend. - $this->element('legend', null, _m('LEGEND','Add OpenID')); + $this->element('legend', null, _m('LEGEND', 'Add OpenID')); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); // TRANS: Field label. $this->input('openid_url', _m('OpenID URL'), null, - // TRANS: Form guide. - _m('An OpenID URL which identifies you.'), null, true, - array('placeholder'=>'https://example.com/you')); + // TRANS: Form guide. + _m('An OpenID URL which identifies you.'), + null, true, + ['placeholder'=>'https://example.com/you']); + $this->elementEnd('li'); + $this->elementStart('li'); + // TRANS: Field label. + $this->checkbox('openid-sync', _m('Sync Account'), false, + _m('Syncronize GNU social profile with this OpenID identity.')); $this->elementEnd('li'); $this->elementEnd('ul'); // TRANS: Button text for adding an OpenID URL. - $this->submit('settings_openid_add_action-submit', _m('BUTTON','Add'), 'submit', 'add'); + $this->submit('settings_openid_add_action-submit', _m('BUTTON', 'Add'), 'submit', 'add'); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -117,46 +125,40 @@ class OpenidsettingsAction extends SettingsAction if ($cnt > 0) { // TRANS: Header on OpenID settings page. - $this->element('h2', null, _m('HEADER','Remove OpenID')); + $this->element('h2', null, _m('HEADER', 'Remove OpenID')); if ($cnt == 1 && !$this->scoped->hasPassword()) { - $this->element('p', 'form_guide', // TRANS: Form guide. _m('Removing your only OpenID '. - 'would make it impossible to log in! ' . - 'If you need to remove it, '. - 'add another OpenID first.')); + 'would make it impossible to log in! ' . + 'If you need to remove it, '. + 'add another OpenID first.')); if ($oid->fetch()) { $this->elementStart('p'); - $this->element('a', array('href' => $oid->canonical), - $oid->display); + $this->element('a', ['href' => $oid->canonical], $oid->display); $this->elementEnd('p'); } - } else { - $this->element('p', 'form_guide', // TRANS: Form guide. _m('You can remove an OpenID from your account '. - 'by clicking the button marked "Remove".')); + 'by clicking the button marked "Remove".')); $idx = 0; while ($oid->fetch()) { - $this->elementStart('form', - array('method' => 'POST', - 'id' => 'form_settings_openid_delete' . $idx, - 'class' => 'form_settings', - 'action' => - common_local_url('openidsettings'))); + $this->elementStart('form', ['method' => 'POST', + 'id' => 'form_settings_openid_delete' . $idx, + 'class' => 'form_settings', + 'action' => + common_local_url('openidsettings')]); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); - $this->element('a', array('href' => $oid->canonical), - $oid->display); + $this->element('a', ['href' => $oid->canonical], $oid->display); $this->hidden("openid_url{$idx}", $oid->canonical, 'openid_url'); // TRANS: Button text to remove an OpenID. - $this->submit("remove{$idx}", _m('BUTTON','Remove'), 'submit remove', 'remove'); + $this->submit("remove{$idx}", _m('BUTTON', 'Remove'), 'submit remove', 'remove'); $this->elementEnd('fieldset'); $this->elementEnd('form'); $idx++; @@ -164,49 +166,51 @@ class OpenidsettingsAction extends SettingsAction } } - $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->elementStart('form', ['method' => 'post', + 'id' => 'form_settings_openid_trustroots', + 'class' => 'form_settings', + 'action' => + common_local_url('openidsettings')]); + $this->elementStart('fieldset', ['id' => 'settings_openid_trustroots']); // TRANS: Fieldset legend. $this->element('legend', null, _m('OpenID Trusted Sites')); $this->hidden('token', common_session_token()); $this->element('p', 'form_guide', // TRANS: 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.')); + '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 = $this->scoped->getID(); - if($user_openid_trustroot->find()) { - while($user_openid_trustroot->fetch()) { + 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)), + $this->element('input', ['name' => 'openid_trustroot[]', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'value' => $user_openid_trustroot->trustroot, + 'id' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)]); + $this->element('label', + ['class'=>'checkbox', + 'for' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)], $user_openid_trustroot->trustroot); $this->elementEnd('li'); } } $this->elementEnd('ul'); // TRANS: Button text to remove an OpenID trustroot. - $this->submit('settings_openid_trustroots_action-submit', _m('BUTTON','Remove'), 'submit', 'remove_trustroots'); + $this->submit('settings_openid_trustroots_action-submit', _m('BUTTON', 'Remove'), 'submit', 'remove_trustroots'); $this->elementEnd('fieldset'); $prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID()); $this->elementStart('fieldset'); - $this->element('legend', null, _m('LEGEND','Preferences')); + $this->element('legend', null, _m('LEGEND', 'Preferences')); $this->elementStart('ul', 'form_data'); $this->checkbox('hide_profile_link', "Hide OpenID links from my profile", !empty($prefs) && $prefs->hide_profile_link); // TRANS: Button text to save OpenID prefs - $this->submit('settings_openid_prefs_save', _m('BUTTON','Save'), 'submit', 'save_prefs'); + $this->submit('settings_openid_prefs_save', _m('BUTTON', 'Save'), 'submit', 'save_prefs'); $this->elementEnd('ul'); $this->elementEnd('fieldset'); @@ -227,17 +231,21 @@ class OpenidsettingsAction extends SettingsAction // TRANS: Form validation error if no OpenID providers can be added. throw new ServerException(_m('Cannot add new providers.')); } else { + common_ensure_session(); + $_SESSION['openid_sync'] = $this->boolean('openid-sync'); + $result = oid_authenticate($this->trimmed('openid_url'), 'finishaddopenid'); if (is_string($result)) { // error message + unset($_SESSION['openid-sync']); throw new ServerException($result); } return _('Added new provider.'); } - } else if ($this->arg('remove')) { + } elseif ($this->arg('remove')) { return $this->removeOpenid(); - } else if($this->arg('remove_trustroots')) { + } elseif ($this->arg('remove_trustroots')) { return $this->removeTrustroots(); - } else if($this->arg('save_prefs')) { + } elseif ($this->arg('save_prefs')) { return $this->savePrefs(); } @@ -253,13 +261,14 @@ class OpenidsettingsAction extends SettingsAction * * @return void */ - function removeTrustroots() + public function removeTrustroots() { - $trustroots = $this->arg('openid_trustroot', array()); - foreach($trustroots as $trustroot) { + $trustroots = $this->arg('openid_trustroot', []); + foreach ($trustroots as $trustroot) { $user_openid_trustroot = User_openid_trustroot::pkeyGet( - array('user_id'=>$this->scoped->getID(), 'trustroot'=>$trustroot)); - if($user_openid_trustroot) { + ['user_id'=>$this->scoped->getID(), 'trustroot'=>$trustroot] + ); + if ($user_openid_trustroot) { $user_openid_trustroot->delete(); } else { // TRANS: Form validation error when trying to remove a non-existing trustroot. @@ -279,7 +288,7 @@ class OpenidsettingsAction extends SettingsAction * * @return void */ - function removeOpenid() + public function removeOpenid() { $oid = User_openid::getKV('canonical', $this->trimmed('openid_url')); @@ -304,7 +313,7 @@ class OpenidsettingsAction extends SettingsAction * * @return void */ - function savePrefs() + public function savePrefs() { $orig = null; $prefs = User_openid_prefs::getKV('user_id', $this->scoped->getID());