diff --git a/app/auth/views.py b/app/auth/views.py index 5eef5868..b2e6ba68 100644 --- a/app/auth/views.py +++ b/app/auth/views.py @@ -1,7 +1,8 @@ from flask import flash, redirect, render_template, request, url_for from flask_login import login_required, login_user, logout_user from . import auth -from .forms import LoginForm +from .forms import LoginForm, PasswordResetRequestForm +from ..email import send_email from ..models import User @@ -31,3 +32,18 @@ def logout(): @auth.route('/register', methods=['GET', 'POST']) def register(): return render_template('auth/register.html.j2') + + +@auth.route('/reset', methods=['GET', 'POST']) +def password_reset_request(): + form = PasswordResetRequestForm() + if form.validate_on_submit(): + user = User.query.filter_by(email=form.email.data.lower()).first() + if user: + token = user.generate_reset_token() + send_email(user.email, 'Reset Your Password', + 'auth/email/reset_password', + user=user, token=token) + flash('An email with instructions to reset your password has been ' + 'sent to you.') + return redirect(url_for('auth.login'))