view frontend/mfrontend/views/frontend.py @ 6:27d63cac76ac

Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
author Michał Rudowicz <michal.rudowicz@fl9.eu>
date Mon, 28 Feb 2011 11:14:35 +0100
parents 3ba60dfc1d64
children d86794939fe4
line wrap: on
line source

#!/usr/bin/python
# -*- coding: utf-8 -*-

from flask import Module, render_template, request, url_for
from flask import escape, session, redirect, flash, abort
from mfrontend import db, utils, exceptions
frontend = Module(__name__)

@frontend.route('/')
def index():
    return render_template('hello.html')

@frontend.route('/install/')
def install():
    """Instaluje aplikację, tworząc pustą bazę danych
       według schematu.
    """
    if db.init_db():
        return render_template('install_ok.html')
    else:
        abort(404)

@frontend.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        try:
            if db.user_can_login(request.form['username'],
                                 request.form['password']) :
                session['logged_in'] = True
                session['logged_user'] = request.form['username']
                flash('Zalogowano')
                return redirect(url_for('index'))
            else:
                raise exceptions.BadPasswordOrUsername()
        except (exceptions.UserNotActivated,
                exceptions.BadPasswordOrUsername) as e:
            flash(e)
            return redirect(url_for('index'))
    return render_template('login.html')

@frontend.route('/logout/')
def logout():
    """Funkcja powoduje wyczyszczenie sesji użytkownika,
       a w efekcie wylogowanie z systemu.
    """
    session.clear()
    flash('Wylogowano')
    return redirect(url_for('index'))