]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/emailsettings.php
TagAction extends ManagedAction
[quix0rs-gnu-social.git] / actions / emailsettings.php
index d515715eda983c8a0d874408fce1a0a8d50e2dd5..ad16d4da4b5827be18947ef0497df89bb72fb7bb 100644 (file)
@@ -351,7 +351,6 @@ class EmailsettingsAction extends SettingsAction
                 common_log_db_error($user, 'UPDATE', __FILE__);
                 // TRANS: Server error thrown on database error updating e-mail preferences.
                 $this->serverError(_('Could not update user.'));
-                return;
             }
 
             $user->query('COMMIT');
@@ -404,23 +403,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 +461,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.
@@ -497,7 +499,6 @@ class EmailsettingsAction extends SettingsAction
             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');
 
@@ -573,7 +574,7 @@ class EmailsettingsAction extends SettingsAction
     {
         $user = common_current_user();
 
-        $other = User::staticGet('email', $email);
+        $other = User::getKV('email', $email);
 
         if (!$other) {
             return false;