示例#1
0
def reset_password():
    if request.method == 'POST':
        try:
            # if user exists
            if User.check_user_exists(request.form['email']):
                user = User.get_user_by_email(request.form['email'])
                subject = 'Password Reset Request from Homer Hokie Tailgate'
                token = ts.dumps(user.email, salt='recover-key')

                recover_url = url_for(
                    'users.reset_with_token',
                    token=token,
                    _external=True)

                html = render_template(
                    'email/recover.html',
                    recover_url=recover_url)

                User.email_password(user, subject, html)

                return redirect(url_for('home'))
            else:
                raise UserErrors.ResetPasswordWrongUser(
                    "Email is not recognized.  Try again or sign up for HHT with that email!")
        except UserErrors.UserError as e:
            return render_template("users/reset_password.jinja2", error=e.message)
    return render_template("users/reset_password.jinja2")