X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fimsettings.php;h=0aa7631dc2c2fc59314ce269aad42cf65a4985cb;hb=4f3d1e93e97365deac2366bfe422e8301d773a25;hp=11dd9ee3b4546bda680544c01b936a55142adcd1;hpb=453751263b1467a0e726a8fc1e392c6c3c7f754d;p=quix0rs-gnu-social.git diff --git a/actions/imsettings.php b/actions/imsettings.php index 11dd9ee3b4..0aa7631dc2 100644 --- a/actions/imsettings.php +++ b/actions/imsettings.php @@ -24,72 +24,62 @@ require_once(INSTALLDIR.'/lib/jabber.php'); class ImsettingsAction extends SettingsAction { - function show_top($arr) { - $msg = $arr[0]; - $success = $arr[1]; - if ($msg) { - $this->message($msg, $success); - } else { - common_element('div', 'instructions', - _t('You can send and receive notices through '. - 'Jabber/GTalk instant messages. Configure '. - 'your address and settings below.')); - } - $this->settings_menu(); + function get_instructions() { + return _('You can send and receive notices through Jabber/GTalk [instant messages](%%doc.im%%). Configure your address and settings below.'); } function show_form($msg=NULL, $success=false) { $user = common_current_user(); - common_show_header(_t('IM settings'), NULL, array($msg, $success), - array($this, 'show_top')); - - common_element_start('form', array('method' => 'POST', + $this->form_header(_('IM Settings'), $msg, $success); + common_element_start('form', array('method' => 'post', 'id' => 'imsettings', 'action' => common_local_url('imsettings'))); + common_hidden('token', common_session_token()); - common_element('h2', NULL, _t('Address')); + common_element('h2', NULL, _('Address')); if ($user->jabber) { common_element_start('p'); common_element('span', 'address confirmed', $user->jabber); common_element('span', 'input_instructions', - _t('Current confirmed Jabber/GTalk address.')); + _('Current confirmed Jabber/GTalk address.')); common_hidden('jabber', $user->jabber); common_element_end('p'); - common_submit('remove', 'Remove'); + common_submit('remove', _('Remove')); } else { $confirm = $this->get_confirmation(); if ($confirm) { common_element_start('p'); common_element('span', 'address unconfirmed', $confirm->address); common_element('span', 'input_instructions', - _t('Awaiting confirmation on this address. Check your ' . - 'Jabber/GTalk account for a message with further ' . - 'instructions. (Did you add ' . jabber_daemon_address() . - ' to your buddy list?)')); + sprintf(_('Awaiting confirmation on this address. Check your Jabber/GTalk account for a message with further instructions. (Did you add %s to your buddy list?)'), jabber_daemon_address())); common_hidden('jabber', $confirm->address); common_element_end('p'); - common_submit('cancel', _t('Cancel')); + common_submit('cancel', _('Cancel')); } else { - common_input('jabber', _t('IM Address'), + common_input('jabber', _('IM Address'), ($this->arg('jabber')) ? $this->arg('jabber') : NULL, - _t('Jabber or GTalk address, like "UserName@example.org". ' . - 'First, make sure to add ' . jabber_daemon_address() . - ' to your buddy list in your IM client or on GTalk.')); - common_submit('add', 'Add'); + sprintf(_('Jabber or GTalk address, like "UserName@example.org". First, make sure to add %s to your buddy list in your IM client or on GTalk.'), jabber_daemon_address())); + common_submit('add', _('Add')); } } - common_element('h2', NULL, _t('Preferences')); + common_element('h2', NULL, _('Preferences')); common_checkbox('jabbernotify', - _t('Send me notices through Jabber/GTalk.'), + _('Send me notices through Jabber/GTalk.'), $user->jabbernotify); common_checkbox('updatefrompresence', - _t('Post a notice when my Jabber/GTalk status changes.'), + _('Post a notice when my Jabber/GTalk status changes.'), $user->updatefrompresence); - common_submit('save', _t('Save')); + common_checkbox('jabberreplies', + _('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'), + $user->jabberreplies); + common_checkbox('jabbermicroid', + _('Publish a MicroID for my Jabber/GTalk address.'), + $user->jabbermicroid); + common_submit('save', _('Save')); common_element_end('form'); common_show_footer(); @@ -109,6 +99,13 @@ class ImsettingsAction extends SettingsAction { function handle_post() { + # CSRF protection + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->show_form(_('There was a problem with your session token. Try again, please.')); + return; + } + if ($this->arg('save')) { $this->save_preferences(); } else if ($this->arg('add')) { @@ -118,7 +115,7 @@ class ImsettingsAction extends SettingsAction { } else if ($this->arg('remove')) { $this->remove_address(); } else { - $this->show_form(_t('Unexpected form submission.')); + $this->show_form(_('Unexpected form submission.')); } } @@ -126,6 +123,8 @@ class ImsettingsAction extends SettingsAction { $jabbernotify = $this->boolean('jabbernotify'); $updatefrompresence = $this->boolean('updatefrompresence'); + $jabberreplies = $this->boolean('jabberreplies'); + $jabbermicroid = $this->boolean('jabbermicroid'); $user = common_current_user(); @@ -137,18 +136,20 @@ class ImsettingsAction extends SettingsAction { $user->jabbernotify = $jabbernotify; $user->updatefrompresence = $updatefrompresence; + $user->jabberreplies = $jabberreplies; + $user->jabbermicroid = $jabbermicroid; $result = $user->update($original); if ($result === FALSE) { common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_t('Couldnt update user.')); + common_server_error(_('Couldn\'t update user.')); return; } $user->query('COMMIT'); - $this->show_form(_t('Preferences saved.'), true); + $this->show_form(_('Preferences saved.'), true); } function add_address() { @@ -160,7 +161,7 @@ class ImsettingsAction extends SettingsAction { # Some validation if (!$jabber) { - $this->show_form(_t('No Jabber ID.')); + $this->show_form(_('No Jabber ID.')); return; } @@ -191,21 +192,17 @@ class ImsettingsAction extends SettingsAction { if ($result === FALSE) { common_log_db_error($confirm, 'INSERT', __FILE__); - common_server_error(_t('Couldnt insert confirmation code.')); + common_server_error(_('Couldn\'t insert confirmation code.')); return; } - # XXX: queue for offline sending - - jabber_confirm_address($confirm->code, - $user->nickname, - $jabber); - - # XXX: I18N + if (!common_config('queue', 'enabled')) { + jabber_confirm_address($confirm->code, + $user->nickname, + $jabber); + } - $msg = 'A confirmation code was sent to the IM address you added. ' . - ' You must approve ' . jabber_daemon_address() . - ' for sending messages to you.'; + $msg = sprintf(_('A confirmation code was sent to the IM address you added. You must approve %s for sending messages to you.'), jabber_daemon_address()); $this->show_form($msg, TRUE); } @@ -214,11 +211,11 @@ class ImsettingsAction extends SettingsAction { $jabber = $this->arg('jabber'); $confirm = $this->get_confirmation(); if (!$confirm) { - $this->show_form(_t('No pending confirmation to cancel.')); + $this->show_form(_('No pending confirmation to cancel.')); return; } if ($confirm->address != $jabber) { - $this->show_form(_t('That is the wrong IM address.')); + $this->show_form(_('That is the wrong IM address.')); return; } @@ -226,11 +223,11 @@ class ImsettingsAction extends SettingsAction { if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); - $this->server_error(_t('Couldn\'t delete email confirmation.')); + $this->server_error(_('Couldn\'t delete email confirmation.')); return; } - $this->show_form(_t('Confirmation cancelled.'), TRUE); + $this->show_form(_('Confirmation cancelled.'), TRUE); } function remove_address() { @@ -241,7 +238,7 @@ class ImsettingsAction extends SettingsAction { # Maybe an old tab open...? if ($user->jabber != $jabber) { - $this->show_form(_t('That is not your Jabber ID.')); + $this->show_form(_('That is not your Jabber ID.')); return; } @@ -251,16 +248,14 @@ class ImsettingsAction extends SettingsAction { $result = $user->updateKeys($original); if (!$result) { common_log_db_error($user, 'UPDATE', __FILE__); - common_server_error(_t('Couldnt update user.')); + common_server_error(_('Couldn\'t update user.')); return; } $user->query('COMMIT'); - # Unsubscribe to the old address - - jabber_special_presence('unsubscribe', $jabber); + # XXX: unsubscribe to the old address - $this->show_form(_t('The address was removed.'), TRUE); + $this->show_form(_('The address was removed.'), TRUE); } function jabber_exists($jabber) {