X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=actions%2Femailsettings.php;h=dfdbe1bad066cac4dcb6f93156f3537fe1bcb699;hb=f094918cf69fec48aa501b8ec0cfa4af87d11266;hp=f12aecd57d4436aba3454226129c55b5807435c7;hpb=2a4dc77a633cc78907934fd93200ac16d55be78e;p=quix0rs-gnu-social.git diff --git a/actions/emailsettings.php b/actions/emailsettings.php index f12aecd57d..dfdbe1bad0 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -91,7 +91,7 @@ class EmailsettingsAction extends SettingsAction */ function showContent() { - $user = common_current_user(); + $user = $this->scoped->getUser(); $this->elementStart('form', array('method' => 'post', 'id' => 'form_settings_email', @@ -206,7 +206,7 @@ class EmailsettingsAction extends SettingsAction $this->elementStart('ul', 'form_data'); - if (Event::handle('StartEmailFormData', array($this))) { + if (Event::handle('StartEmailFormData', array($this, $this->scoped))) { $this->elementStart('li'); $this->checkbox('emailnotifysub', // TRANS: Checkbox label in e-mail preferences form. @@ -214,13 +214,6 @@ class EmailsettingsAction extends SettingsAction $user->emailnotifysub); $this->elementEnd('li'); $this->elementStart('li'); - $this->checkbox('emailnotifyfav', - // TRANS: Checkbox label in e-mail preferences form. - _('Send me email when someone '. - 'adds my notice as a favorite.'), - $user->emailnotifyfav); - $this->elementEnd('li'); - $this->elementStart('li'); $this->checkbox('emailnotifymsg', // TRANS: Checkbox label in e-mail preferences form. _('Send me email when someone sends me a private message.'), @@ -244,7 +237,7 @@ class EmailsettingsAction extends SettingsAction _('Publish a MicroID for my email address.'), $user->emailmicroid); $this->elementEnd('li'); - Event::handle('EndEmailFormData', array($this)); + Event::handle('EndEmailFormData', array($this, $this->scoped)); } $this->elementEnd('ul'); // TRANS: Button label to save e-mail preferences. @@ -320,25 +313,21 @@ class EmailsettingsAction extends SettingsAction */ function savePreferences() { - $user = common_current_user(); - - if (Event::handle('StartEmailSaveForm', array($this, &$user))) { - $emailnotifysub = $this->boolean('emailnotifysub'); - $emailnotifyfav = $this->boolean('emailnotifyfav'); - $emailnotifymsg = $this->boolean('emailnotifymsg'); - $emailnotifynudge = $this->boolean('emailnotifynudge'); - $emailnotifyattn = $this->boolean('emailnotifyattn'); - $emailmicroid = $this->boolean('emailmicroid'); - $emailpost = $this->boolean('emailpost'); + $user = $this->scoped->getUser(); - assert(!is_null($user)); // should already be checked + if (Event::handle('StartEmailSaveForm', array($this, $this->scoped))) { + $emailnotifysub = $this->booleanintstring('emailnotifysub'); + $emailnotifymsg = $this->booleanintstring('emailnotifymsg'); + $emailnotifynudge = $this->booleanintstring('emailnotifynudge'); + $emailnotifyattn = $this->booleanintstring('emailnotifyattn'); + $emailmicroid = $this->booleanintstring('emailmicroid'); + $emailpost = $this->booleanintstring('emailpost'); $user->query('BEGIN'); $original = clone($user); $user->emailnotifysub = $emailnotifysub; - $user->emailnotifyfav = $emailnotifyfav; $user->emailnotifymsg = $emailnotifymsg; $user->emailnotifynudge = $emailnotifynudge; $user->emailnotifyattn = $emailnotifyattn; @@ -349,14 +338,14 @@ class EmailsettingsAction extends SettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); + $user->query('ROLLBACK'); // TRANS: Server error thrown on database error updating e-mail preferences. $this->serverError(_('Could not update user.')); - return; } $user->query('COMMIT'); - Event::handle('EndEmailSaveForm', array($this)); + Event::handle('EndEmailSaveForm', array($this, $this->scoped)); // TRANS: Confirmation message for successful e-mail preferences save. $this->showForm(_('Email preferences saved.'), true); @@ -419,7 +408,6 @@ class EmailsettingsAction extends SettingsAction common_log_db_error($confirm, 'INSERT', __FILE__); // TRANS: Server error thrown on database error adding e-mail confirmation code. $this->serverError(_('Could not insert confirmation code.')); - return; } mail_confirm_address($user, $confirm->code, $user->nickname, $email); @@ -463,7 +451,6 @@ class EmailsettingsAction extends SettingsAction common_log_db_error($confirm, 'DELETE', __FILE__); // TRANS: Server error thrown on database error canceling e-mail address confirmation. $this->serverError(_('Could not delete email confirmation.')); - return; } // TRANS: Message given after successfully canceling e-mail address confirmation. @@ -490,21 +477,12 @@ class EmailsettingsAction extends SettingsAction return; } - $user->query('BEGIN'); - $original = clone($user); $user->email = null; - $result = $user->updateKeys($original); - - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - // TRANS: Server error thrown on database error removing a registered e-mail address. - $this->serverError(_('Could not update user.')); - return; - } - $user->query('COMMIT'); + // Throws exception on failure. Also performs it within a transaction. + $user->updateWithKeys($original); // TRANS: Message given after successfully removing a registered e-mail address. $this->showForm(_('The email address was removed.'), true); @@ -530,11 +508,8 @@ class EmailsettingsAction extends SettingsAction $user->incomingemail = null; $user->emailpost = 0; - if (!$user->updateKeys($orig)) { - common_log_db_error($user, 'UPDATE', __FILE__); - // TRANS: Server error thrown on database error removing incoming e-mail address. - $this->serverError(_('Could not update user record.')); - } + // Throws exception on failure. Also performs it within a transaction. + $user->updateWithKeys($orig); // TRANS: Message given after successfully removing an incoming e-mail address. $this->showForm(_('Incoming email address removed.'), true); @@ -554,11 +529,8 @@ class EmailsettingsAction extends SettingsAction $user->incomingemail = mail_new_incoming_address(); $user->emailpost = 1; - if (!$user->updateKeys($orig)) { - common_log_db_error($user, 'UPDATE', __FILE__); - // TRANS: Server error thrown on database error adding incoming e-mail address. - $this->serverError(_('Could not update user record.')); - } + // Throws exception on failure. Also performs it within a transaction. + $user->updateWithKeys($orig); // TRANS: Message given after successfully adding an incoming e-mail address. $this->showForm(_('New incoming email address added.'), true);