summaryrefslogtreecommitdiffstats
path: root/accounts/views/login/__init__.py
blob: 18dc070802924ee5e7a7985de8e39b56ca36768f (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
# -*- coding: utf-8 -*-
from __future__ import absolute_import

from flask import Blueprint
from flask import current_app, redirect, request, g, flash, render_template, url_for
from flask.ext.login import login_user, logout_user, current_user

from .forms import LoginForm


bp = Blueprint('login', __name__)


@bp.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated():
        return redirect(url_for('default.index'))

    form = LoginForm(request.form)
    if form.validate_on_submit():
        try:
            user = current_app.user_backend.auth(form.username.data,
                                                 form.password.data)
            login_user(user)
            flash(u'Erfolgreich eingeloggt', 'success')
            return redirect(url_for('default.index'))
        except (current_app.user_backend.NoSuchUserError,
                current_app.user_backend.InvalidPasswordError):
            flash(u'Ungültiger Benutzername und/oder Passwort', 'error')

    return render_template("login/login.html", form=form)


@bp.route('/logout')
def logout():
    logout_user()
    flash(u'Erfolgreich ausgeloggt.', 'success')
    return redirect(url_for('.login'))