summaryrefslogtreecommitdiff
path: root/app/views/user.py
blob: a532c450b7920c634b6aff1d9251ee950d1f843b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- encoding: utf-8 -*-
from . import Blueprint, flash, db, \
        current_user, login_required, \
        templated, redirect, request, url_for

from ..forms import LoginForm, ChangePwdForm
from ..login import login_user, logout_user, login_manager

import flask

mod = Blueprint('user', __name__)

@mod.route('/login', methods=('GET', 'POST'))
@templated
def login():
   form = LoginForm(flash=u"Login fehlgeschlagen!")

   if form.validate_on_submit():
       login_user(form.user)
       # 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('.login')

login_manager.login_view = 'user.login'