X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FFacebookBridge%2Factions%2Ffacebooksettings.php;h=67dd20e036dfd09a870e88bc56d0e6749e78712e;hb=e2d85a39e7f82ceef2cb2fe66a3a9a62ac9a363e;hp=7d45cc03e6b99eff5be883a806aa1a0dcffdd92d;hpb=ade7172a25b959ba8663843775034fba1c828e1b;p=quix0rs-gnu-social.git diff --git a/plugins/FacebookBridge/actions/facebooksettings.php b/plugins/FacebookBridge/actions/facebooksettings.php index 7d45cc03e6..67dd20e036 100644 --- a/plugins/FacebookBridge/actions/facebooksettings.php +++ b/plugins/FacebookBridge/actions/facebooksettings.php @@ -26,9 +26,7 @@ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ -if (!defined('STATUSNET')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * Edit user settings for Facebook @@ -43,19 +41,11 @@ if (!defined('STATUSNET')) { */ class FacebooksettingsAction extends SettingsAction { private $facebook; // Facebook PHP-SDK client obj - private $flink; - private $user; - /** - * For initializing members of the class. - * - * @param array $argarray misc. arguments - * - * @return boolean true - */ - function prepare($args) { - parent::prepare($args); + protected $flink; + protected function doPreparation() + { $this->facebook = new Facebook( array( 'appId' => common_config('facebook', 'appid'), @@ -64,35 +54,21 @@ class FacebooksettingsAction extends SettingsAction { ) ); - $this->user = common_current_user(); - $this->flink = Foreign_link::getByUserID( - $this->user->id, + $this->scoped->getID(), FACEBOOK_SERVICE ); - - return true; } - /* - * Check the sessions token and dispatch - */ - function handlePost($args) { - // CSRF protection - - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->showForm( - _m('There was a problem with your session token. Try again, please.') - ); - return; - } - + protected function doPost() + { if ($this->arg('save')) { - $this->saveSettings(); + return $this->saveSettings(); } else if ($this->arg('disconnect')) { - $this->disconnect(); + return $this->disconnect(); } + + throw new ClientException(_('No action to take on POST.')); } /** @@ -102,7 +78,7 @@ class FacebooksettingsAction extends SettingsAction { */ function title() { // TRANS: Page title for Facebook settings. - return _m('Facebook settings'); + return _m('TITLE','Facebook settings'); } /** @@ -111,6 +87,7 @@ class FacebooksettingsAction extends SettingsAction { * @return instructions for use */ function getInstructions() { + // TRANS: Instructions for Facebook settings. return _m('Facebook settings'); } @@ -120,110 +97,110 @@ class FacebooksettingsAction extends SettingsAction { * @return void */ function showContent() { - if (!empty($this->flink)) { - - $this->elementStart( - 'form', - array( - 'method' => 'post', - 'id' => 'form_settings_facebook', - 'class' => 'form_settings', - 'action' => common_local_url('facebooksettings') - ) - ); + if (!$this->flink instanceof Foreign_link) { + throw new ServerException(_m('You have not linked this account to Facebook.')); + } + + $this->elementStart( + 'form', + array( + 'method' => 'post', + 'id' => 'form_settings_facebook', + 'class' => 'form_settings', + 'action' => common_local_url('facebooksettings') + ) + ); - $this->hidden('token', common_session_token()); + $this->hidden('token', common_session_token()); - $this->element('p', 'form_note', _m('Connected Facebook user')); + // TRANS: Form note. User is connected to facebook. + $this->element('p', 'form_note', _m('Connected Facebook user')); - $this->elementStart('p', array('class' => 'facebook-user-display')); + $this->elementStart('p', array('class' => 'facebook-user-display')); - $this->element( - 'fb:profile-pic', - array( - 'uid' => $this->flink->foreign_id, - 'size' => 'small', - 'linked' => 'true', - 'facebook-logo' => 'true' - ) - ); + $this->element( + 'fb:profile-pic', + array( + 'uid' => $this->flink->foreign_id, + 'size' => 'small', + 'linked' => 'true', + 'facebook-logo' => 'true' + ) + ); - $this->element( - 'fb:name', - array('uid' => $this->flink->foreign_id, 'useyou' => 'false') - ); + $this->element( + 'fb:name', + array('uid' => $this->flink->foreign_id, 'useyou' => 'false') + ); - $this->elementEnd('p'); + $this->elementEnd('p'); - $this->elementStart('ul', 'form_data'); + $this->elementStart('ul', 'form_data'); - $this->elementStart('li'); + $this->elementStart('li'); - $this->checkbox( - 'noticesync', - _m('Publish my notices to Facebook.'), - ($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND) : true - ); + $this->checkbox( + 'noticesync', + // TRANS: Checkbox label in Facebook settings. + _m('Publish my notices to Facebook.'), + $this->flink->noticesync & FOREIGN_NOTICE_SEND + ); - $this->elementEnd('li'); + $this->elementEnd('li'); - $this->elementStart('li'); + $this->elementStart('li'); - $this->checkbox( - 'replysync', - _m('Send "@" replies to Facebook.'), - ($this->flink) ? ($this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true - ); + $this->checkbox( + 'replysync', + // TRANS: Checkbox label in Facebook settings. + _m('Send "@" replies to Facebook.'), + $this->flink->noticesync & FOREIGN_NOTICE_SEND_REPLY + ); - $this->elementEnd('li'); + $this->elementEnd('li'); - $this->elementStart('li'); + $this->elementStart('li'); - // TRANS: Submit button to save synchronisation settings. - $this->submit('save', _m('BUTTON', 'Save')); + // TRANS: Submit button to save synchronisation settings. + $this->submit('save', _m('BUTTON', 'Save')); - $this->elementEnd('li'); + $this->elementEnd('li'); - $this->elementEnd('ul'); + $this->elementEnd('ul'); - $this->elementStart('fieldset'); + $this->elementStart('fieldset'); - // TRANS: Legend. - $this->element('legend', null, _m('Disconnect my account from Facebook')); + // TRANS: Fieldset legend for form to disconnect from Facebook. + $this->element('legend', null, _m('Disconnect my account from Facebook')); - if (empty($this->user->password)) { - $this->elementStart('p', array('class' => 'form_guide')); + if (!$this->scoped->hasPassword()) { + $this->elementStart('p', array('class' => 'form_guide')); - $msg = sprintf( - _m( - 'Disconnecting your Faceboook would make it impossible to ' - . 'log in! Please [set a password](%s) first.' - ), - common_local_url('passwordsettings') - ); + $msg = sprintf( + // TRANS: Notice in disconnect from Facebook form if user has no local StatusNet password. + _m('Disconnecting your Faceboook would make it impossible to '. + 'log in! Please [set a password](%s) first.'), + common_local_url('passwordsettings') + ); - $this->raw(common_markup_to_html($msg)); - $this->elementEnd('p'); - } else { - // @todo FIXME: i18n: This message is not being used. - $msg = sprintf( - // TRANS: Message displayed when initiating disconnect of a StatusNet user - // TRANS: from a Facebook account. %1$s is the StatusNet site name. - _m( - 'Keep your %1$s account but disconnect from Facebook. ' . - 'You\'ll use your %1$s password to log in.' - ), - common_config('site', 'name') - ); + $this->raw(common_markup_to_html($msg)); + $this->elementEnd('p'); + } else { + // @todo FIXME: i18n: This message is not being used. + // TRANS: Message displayed when initiating disconnect of a StatusNet user + // TRANS: from a Facebook account. %1$s is the StatusNet site name. + $msg = sprintf(_m('Keep your %1$s account but disconnect from Facebook. ' . + 'You\'ll use your %1$s password to log in.'), + common_config('site', 'name') + ); - // TRANS: Submit button. - $this->submit('disconnect', _m('BUTTON', 'Disconnect')); - } + // TRANS: Submit button. + $this->submit('disconnect', _m('BUTTON', 'Disconnect')); + } - $this->elementEnd('fieldset'); + $this->elementEnd('fieldset'); - $this->elementEnd('form'); - } + $this->elementEnd('form'); } /* @@ -240,11 +217,11 @@ class FacebooksettingsAction extends SettingsAction { $result = $this->flink->update($original); if ($result === false) { - $this->showForm(_m('There was a problem saving your sync preferences.')); - } else { - // TRANS: Confirmation that synchronisation settings have been saved into the system. - $this->showForm(_m('Sync preferences saved.'), true); + // TRANS: Notice in case saving of synchronisation preferences fail. + throw new ServerException(_m('There was a problem saving your sync preferences.')); } + // TRANS: Confirmation that synchronisation settings have been saved into the system. + return _m('Sync preferences saved.'); } /* @@ -256,11 +233,12 @@ class FacebooksettingsAction extends SettingsAction { $this->flink = null; if ($result === false) { - common_log_db_error($user, 'DELETE', __FILE__); - $this->serverError(_m('Could not delete link to Facebook.')); - return; + common_log_db_error($this->flink, 'DELETE', __FILE__); + // TRANS: Server error displayed when deleting the link to a Facebook account fails. + throw new ServerException(_m('Could not delete link to Facebook.')); } - $this->showForm(_m('You have disconnected from Facebook.'), true); + // TRANS: Confirmation message. GNU social account was unlinked from Facebook. + return _m('You have disconnected this account from Facebook.'); } }