X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Frecoverpassword.php;h=4839a036c0e4be2dcb0f632f3d3fd32c71204336;hb=325199b5e68f413e96eabc7a293089f5c748e9ce;hp=d81c13b0059456e39df36c4312102381a00f4494;hpb=8884a5255fb90fda67b63fa0d4252d77176337e5;p=quix0rs-gnu-social.git diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index d81c13b005..4839a036c0 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -35,7 +35,6 @@ class RecoverpasswordAction extends Action if (common_logged_in()) { // TRANS: Client error displayed trying to recover password while already logged in. $this->clientError(_('You are already logged in!')); - return; } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($this->arg('recover')) { $this->recoverPassword(); @@ -57,25 +56,22 @@ class RecoverpasswordAction extends Action function checkCode() { $code = $this->trimmed('code'); - $confirm = Confirm_address::staticGet('code', $code); + $confirm = Confirm_address::getKV('code', $code); if (!$confirm) { // TRANS: Client error displayed when password recovery code is not correct. $this->clientError(_('No such recovery code.')); - return; } if ($confirm->address_type != 'recover') { // TRANS: Client error displayed when no proper password recovery code was submitted. $this->clientError(_('Not a recovery code.')); - return; } - $user = User::staticGet($confirm->user_id); + $user = User::getKV($confirm->user_id); if (!$user) { // TRANS: Server error displayed trying to recover password without providing a user. $this->serverError(_('Recovery code for unknown user.')); - return; } $touched = strtotime($confirm->modified); @@ -89,7 +85,6 @@ class RecoverpasswordAction extends Action common_log_db_error($confirm, 'DELETE', __FILE__); // TRANS: Server error displayed removing a password recovery code from the database. $this->serverError(_('Error with confirmation code.')); - return; } // These should be reaped, but for now we just check mod time @@ -102,7 +97,6 @@ class RecoverpasswordAction extends Action // TRANS: Client error displayed trying to recover password with too old a recovery code. $this->clientError(_('This confirmation code is too old. ' . 'Please start again.')); - return; } // If we used an outstanding confirmation to send the email, @@ -111,13 +105,8 @@ class RecoverpasswordAction extends Action if (!$user->email) { $orig = clone($user); $user->email = $email; - $result = $user->updateKeys($orig); - if (!$result) { - common_log_db_error($user, 'UPDATE', __FILE__); - // TRANS: Server error displayed when updating a user's e-mail address in the database fails while recovering a password. - $this->serverError(_('Could not update user with confirmed email address.')); - return; - } + // Throws exception on failure. + $user->updateWithKeys($orig); } // Success! @@ -137,7 +126,7 @@ class RecoverpasswordAction extends Action common_ensure_session(); $user_id = $_SESSION['tempuser']; if ($user_id) { - $user = User::staticGet($user_id); + $user = User::getKV($user_id); } return $user; } @@ -288,10 +277,11 @@ class RecoverpasswordAction extends Action 'have been sent to the email address registered to your ' . 'account.'); $this->success = true; - $this->showPage(); } catch (Exception $e) { $this->success = false; + $this->msg = $e->getMessage(); } + $this->showPage(); } function resetPassword() @@ -309,7 +299,6 @@ class RecoverpasswordAction extends Action if (!$user) { // TRANS: Client error displayed when trying to reset as password without providing a user. $this->clientError(_('Unexpected password reset.')); - return; } $newpassword = $this->trimmed('newpassword'); @@ -336,7 +325,6 @@ class RecoverpasswordAction extends Action common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Reset password form validation error message. $this->serverError(_('Cannot save new password.')); - return; } $this->clearTempUser(); @@ -344,7 +332,6 @@ class RecoverpasswordAction extends Action if (!common_set_user($user->nickname)) { // TRANS: Server error displayed when something does wrong with the user object during password reset. $this->serverError(_('Error setting user.')); - return; } common_real_login(true);