]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/emailsettings.php
Added missing isPrivateScope().
[quix0rs-gnu-social.git] / actions / emailsettings.php
index 117c4c4f7c21519f0b2ca031ef2bb0eab7137de3..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',
@@ -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.'),
@@ -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,13 +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.'));
             }
 
             $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);
@@ -487,20 +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.'));
-        }
-        $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);
@@ -526,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);
@@ -550,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);