X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Femailsettings.php;h=96ada2c826e49058b81be6db6d9d4b0d97ad8542;hb=042cb1604a45fbce0878c113bfc997d899e276d0;hp=d515715eda983c8a0d874408fce1a0a8d50e2dd5;hpb=c4b9dc7a0ff2e41712715ac21bace067e8c02715;p=quix0rs-gnu-social.git diff --git a/actions/emailsettings.php b/actions/emailsettings.php index d515715eda..96ada2c826 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -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. @@ -322,9 +315,8 @@ class EmailsettingsAction extends SettingsAction { $user = common_current_user(); - if (Event::handle('StartEmailSaveForm', array($this, &$user))) { + if (Event::handle('StartEmailSaveForm', array($this, $this->scoped))) { $emailnotifysub = $this->boolean('emailnotifysub'); - $emailnotifyfav = $this->boolean('emailnotifyfav'); $emailnotifymsg = $this->boolean('emailnotifymsg'); $emailnotifynudge = $this->boolean('emailnotifynudge'); $emailnotifyattn = $this->boolean('emailnotifyattn'); @@ -338,7 +330,6 @@ class EmailsettingsAction extends SettingsAction $original = clone($user); $user->emailnotifysub = $emailnotifysub; - $user->emailnotifyfav = $emailnotifyfav; $user->emailnotifymsg = $emailnotifymsg; $user->emailnotifynudge = $emailnotifynudge; $user->emailnotifyattn = $emailnotifyattn; @@ -349,14 +340,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); @@ -404,23 +395,27 @@ class EmailsettingsAction extends SettingsAction return; } - $confirm = new Confirm_address(); + if (Event::handle('StartAddEmailAddress', array($user, $email))) { - $confirm->address = $email; - $confirm->address_type = 'email'; - $confirm->user_id = $user->id; - $confirm->code = common_confirmation_code(64); + $confirm = new Confirm_address(); - $result = $confirm->insert(); + $confirm->address = $email; + $confirm->address_type = 'email'; + $confirm->user_id = $user->id; + $confirm->code = common_confirmation_code(64); - if ($result === false) { - 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; - } + $result = $confirm->insert(); + + if ($result === false) { + 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.')); + } - mail_confirm_address($user, $confirm->code, $user->nickname, $email); + mail_confirm_address($user, $confirm->code, $user->nickname, $email); + + Event::handle('EndAddEmailAddress', array($user, $email)); + } // TRANS: Message given saving valid e-mail address that is to be confirmed. $msg = _('A confirmation code was sent to the email address you added. '. @@ -458,7 +453,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. @@ -485,21 +479,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); @@ -525,11 +510,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); @@ -549,11 +531,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); @@ -573,7 +552,7 @@ class EmailsettingsAction extends SettingsAction { $user = common_current_user(); - $other = User::staticGet('email', $email); + $other = User::getKV('email', $email); if (!$other) { return false;