send the password reset e-mail
This commit is contained in:
parent
2f6fa5816f
commit
ddf00a0ab7
|
@ -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'])
|
||||||
|
|
Loading…
Reference in a new issue