send the password reset e-mail

This commit is contained in:
Edward Betts 2017-02-24 09:21:29 +00:00
parent 2f6fa5816f
commit ddf00a0ab7

View file

@ -7,6 +7,7 @@ from .forms import (LoginForm, SignupForm, AccountSettingsForm,
ForgotPasswordForm, PasswordForm) ForgotPasswordForm, PasswordForm)
from .model import User, SourceDoc, Item, XanaDoc, XanaLink from .model import User, SourceDoc, Item, XanaDoc, XanaLink
from .url import get_url from .url import get_url
from .mail import send_mail
from .edl import fulfil_edl_with_sources from .edl import fulfil_edl_with_sources
from .database import session from .database import session
from .text import iter_lines, add_highlight from .text import iter_lines, add_highlight
@ -64,6 +65,7 @@ def home():
@bp.route('/password_reset', methods=['GET', 'POST']) @bp.route('/password_reset', methods=['GET', 'POST'])
def password_reset(): def password_reset():
site_name = 'perma.pub' # FIXME: move to config
form = ForgotPasswordForm() form = ForgotPasswordForm()
if not form.validate_on_submit(): if not form.validate_on_submit():
return render_template('auth/password_reset.html', form=form) return render_template('auth/password_reset.html', form=form)
@ -71,7 +73,13 @@ def password_reset():
user = User.lookup_user_or_email(form.user_or_email.data) user = User.lookup_user_or_email(form.user_or_email.data)
if user: if user:
token = ts.dumps(user.id, salt='password-reset') token = ts.dumps(user.id, salt='password-reset')
print(token) reset_link = url_for('.reset_with_token', token=token, _external=True)
reset_mail = render_template('mail/password_reset.txt',
reset_link=reset_link,
site_name=site_name,
user=user)
subject = 'Password reset on ' + site_name
send_mail(user, subject, reset_mail)
return redirect(url_for('.password_reset_sent')) return redirect(url_for('.password_reset_sent'))
@bp.route('/password_reset/sent', methods=['GET', 'POST']) @bp.route('/password_reset/sent', methods=['GET', 'POST'])