From b1e3d09533fc613e74b86a1c8fd750ed4a839dab Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 19 Jan 2018 22:27:31 -0500 Subject: [PATCH] Fix formatting mod/lostpass --- mod/lostpass.php | 150 +++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 89 deletions(-) diff --git a/mod/lostpass.php b/mod/lostpass.php index 3f480ea0f3..5934556a8e 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -1,47 +1,41 @@ $pwdreset_token], ['uid' => $user['uid']]); + if ($result) { + info(t('Password reset request issued. Check your email.') . EOL); + } $sitename = $a->config['sitename']; - $resetlink = System::baseUrl() . '/lostpass?verify=' . $new_password; + $resetlink = System::baseUrl() . '/lostpass?verify=' . $pwdreset_token; $preamble = deindent(t(' Dear %1$s, @@ -53,7 +47,7 @@ function lostpass_post(App $a) { provided and ignore and/or delete this email. Your password will not be changed unless we can verify that you - issued this request.')); + issued this request.', $user['username'], $sitename)); $body = deindent(t(' Follow this link to verify your identity: @@ -65,74 +59,58 @@ function lostpass_post(App $a) { The login details are as follows: Site Location: %2$s - Login Name: %3$s')); - - $preamble = sprintf($preamble, $username, $sitename); - $body = sprintf($body, $resetlink, System::baseUrl(), $email); + Login Name: %3$s', $resetlink, System::baseUrl(), $user['email'])); notification([ - 'type' => SYSTEM_EMAIL, - 'to_email' => $email, - 'subject'=> sprintf( t('Password reset requested at %s'),$sitename), - 'preamble'=> $preamble, - 'body' => $body]); + 'type' => SYSTEM_EMAIL, + 'to_email' => $user['email'], + 'subject' => t('Password reset requested at %s', $sitename), + 'preamble' => $preamble, + 'body' => $body + ]); goaway(System::baseUrl()); - } +function lostpass_content(App $a) +{ + $o = ''; + if (x($_GET, 'verify')) { + $pwdreset_token = $_GET['verify']; -function lostpass_content(App $a) { - - - if(x($_GET,'verify')) { - $verify = $_GET['verify']; - $hash = hash('whirlpool', $verify); - - $r = q("SELECT * FROM `user` WHERE `pwdreset` = '%s' LIMIT 1", - dbesc($hash) - ); - if (! DBM::is_result($r)) { - $o = t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."); + $user = dba::selectFirst('user', ['uid', 'username', 'email'], ['pwdreset' => $pwdreset_token]); + if (!DBM::is_result($user)) { + $o = t("Request could not be verified. \x28You may have previously submitted it.\x29 Password reset failed."); return $o; } - $uid = $r[0]['uid']; - $username = $r[0]['username']; - $email = $r[0]['email']; - $new_password = autoname(6) . mt_rand(100,9999); - $new_password_encoded = hash('whirlpool',$new_password); + $new_password = autoname(6) . mt_rand(100, 9999); + $new_password_encoded = hash('whirlpool', $new_password); - $r = q("UPDATE `user` SET `password` = '%s', `pwdreset` = '' WHERE `uid` = %d", - dbesc($new_password_encoded), - intval($uid) - ); - - /// @TODO Is DBM::is_result() okay here? - if ($r) { + $result = dba::update('user', ['password' => $new_password_encoded, 'pwdreset' => ''], ['uid' => $user['uid']]); + if (DBM::is_result($result)) { $tpl = get_markup_template('pwdreset.tpl'); - $o .= replace_macros($tpl,[ - '$lbl1' => t('Password Reset'), - '$lbl2' => t('Your password has been reset as requested.'), - '$lbl3' => t('Your new password is'), - '$lbl4' => t('Save or copy your new password - and then'), - '$lbl5' => '' . t('click here to login') . '.', - '$lbl6' => t('Your password may be changed from the Settings page after successful login.'), + $o .= replace_macros($tpl, + [ + '$lbl1' => t('Password Reset'), + '$lbl2' => t('Your password has been reset as requested.'), + '$lbl3' => t('Your new password is'), + '$lbl4' => t('Save or copy your new password - and then'), + '$lbl5' => '' . t('click here to login') . '.', + '$lbl6' => t('Your password may be changed from the Settings page after successful login.'), '$newpass' => $new_password, '$baseurl' => System::baseUrl() - ]); - info("Your password has been reset." . EOL); + info("Your password has been reset." . EOL); $sitename = $a->config['sitename']; - // $username, $email, $new_password $preamble = deindent(t(' Dear %1$s, Your password has been changed as requested. Please retain this information for your records (or change your password immediately to something that you will remember). - ')); + ', $user['username'])); $body = deindent(t(' Your login details are as follows: @@ -141,33 +119,27 @@ function lostpass_content(App $a) { Password: %3$s You may change that password from your account settings page after logging in. - ')); - - $preamble = sprintf($preamble, $username); - $body = sprintf($body, System::baseUrl(), $email, $new_password); + ', System::baseUrl(), $user['email'], $new_password)); notification([ - 'type' => SYSTEM_EMAIL, - 'to_email' => $email, - 'subject'=> sprintf( t('Your password has been changed at %s'),$sitename), - 'preamble'=> $preamble, - 'body' => $body]); + 'type' => SYSTEM_EMAIL, + 'to_email' => $user['email'], + 'subject' => t('Your password has been changed at %s', $sitename), + 'preamble' => $preamble, + 'body' => $body + ]); return $o; } - - } - else { + } else { $tpl = get_markup_template('lostpass.tpl'); - - $o .= replace_macros($tpl,[ - '$title' => t('Forgot your Password?'), - '$desc' => t('Enter your email address and submit to have your password reset. Then check your email for further instructions.'), - '$name' => t('Nickname or Email: '), + $o .= replace_macros($tpl, [ + '$title' => t('Forgot your Password?'), + '$desc' => t('Enter your email address and submit to have your password reset. Then check your email for further instructions.'), + '$name' => t('Nickname or Email: '), '$submit' => t('Reset') ]); return $o; } - }