From 25c5a1f0efa55246e20fbac540482857dd503bd9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 11 Apr 2011 16:38:57 -0400 Subject: [PATCH] hooks for adding email addresses --- EVENTS.txt | 8 ++++++++ actions/emailsettings.php | 31 ++++++++++++++++++------------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 4614ef3da5..6ac607382b 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1334,3 +1334,11 @@ EndShowThreadedNoticeSub: when showing a reply to a notice - $parent: parent notice - $child: child notice +StartAddEmailAddress: when adding an email address through the Web UI +- $user: user getting the new address +- $email: email being added + +EndAddEmailAddress: done adding an email address through the Web UI +- $user: user getting the new address +- $email: email being added + diff --git a/actions/emailsettings.php b/actions/emailsettings.php index d515715eda..9493be80aa 100644 --- a/actions/emailsettings.php +++ b/actions/emailsettings.php @@ -404,23 +404,28 @@ 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(); - mail_confirm_address($user, $confirm->code, $user->nickname, $email); + 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; + } + + 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. '. -- 2.39.5