diff options
Diffstat (limited to 'app/views')
-rw-r--r-- | app/views/user.py | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/app/views/user.py b/app/views/user.py index e3c9251..a532c45 100644 --- a/app/views/user.py +++ b/app/views/user.py @@ -1,12 +1,12 @@ +# -*- encoding: utf-8 -*- from . import Blueprint, flash, db, \ current_user, login_required, \ - templated, request, url_for + templated, redirect, request, url_for -from ..forms import LoginForm +from ..forms import LoginForm, ChangePwdForm from ..login import login_user, logout_user, login_manager -# we explicitly need flask's redirect and not our variant -from flask import redirect +import flask mod = Blueprint('user', __name__) @@ -17,13 +17,28 @@ def login(): if form.validate_on_submit(): login_user(form.user) - return redirect(request.args.get('next') or url_for('index')) + # we explicitly need flask's variant as we redirect to a URI + return flask.redirect(request.args.get('next') or url_for('index')) return { 'form': form } +@mod.route('/cpw', methods=('GET', 'POST')) +@login_required +@templated +def cpw(): + form = ChangePwdForm() + + if form.validate_on_submit(): + current_user.set_password(form.newpwd) + db.session.commit() + flash(u"Passwort geändert.") + return redirect('index') + + return { 'form': form } + @mod.route('/logout') def logout(): logout_user() - return redirect(url_for('.login')) + return redirect('.login') login_manager.login_view = 'user.login' |