]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
hooks for adding email addresses
authorEvan Prodromou <evan@status.net>
Mon, 11 Apr 2011 20:38:57 +0000 (16:38 -0400)
committerEvan Prodromou <evan@status.net>
Mon, 11 Apr 2011 20:38:57 +0000 (16:38 -0400)
EVENTS.txt
actions/emailsettings.php

index 4614ef3da5f636289e4b411e74eeedd24b785a03..6ac607382b790db68ec08c7bd74ac653a30a959e 100644 (file)
@@ -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
+
index d515715eda983c8a0d874408fce1a0a8d50e2dd5..9493be80aab06caf4e9f862973cb07a3db742d84 100644 (file)
@@ -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. '.