]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/emailsettings.php
Added missing isPrivateScope().
[quix0rs-gnu-social.git] / actions / emailsettings.php
index 9493be80aab06caf4e9f862973cb07a3db742d84..dfdbe1bad066cac4dcb6f93156f3537fe1bcb699 100644 (file)
@@ -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);
@@ -578,7 +550,7 @@ class EmailsettingsAction extends SettingsAction
     {
         $user = common_current_user();
 
-        $other = User::staticGet('email', $email);
+        $other = User::getKV('email', $email);
 
         if (!$other) {
             return false;