diff 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 diff
--- a/frontend/mfrontend/views/frontend.py	Sun Feb 27 09:33:03 2011 +0100
+++ b/frontend/mfrontend/views/frontend.py	Mon Feb 28 11:14:35 2011 +0100
@@ -3,14 +3,14 @@
 
 from flask import Module, render_template, request, url_for
 from flask import escape, session, redirect, flash, abort
-from mfrontend import db, utils
+from mfrontend import db, utils, exceptions
 frontend = Module(__name__)
 
 @frontend.route('/')
 def index():
     return render_template('hello.html')
 
-@frontend.route('/install')
+@frontend.route('/install/')
 def install():
     """Instaluje aplikację, tworząc pustą bazę danych
        według schematu.
@@ -20,22 +20,25 @@
     else:
         abort(404)
 
-@frontend.route('/login', methods=['GET', 'POST'])
+@frontend.route('/login/', methods=['GET', 'POST'])
 def login():
     if request.method == 'POST':
-        if db.user_can_login(request.form['username'],
-                             request.form['password']) :
-            session['logged_in'] = True
-            session['logged_user'] = request.form['username']
-            flash('Zalogowano')
+        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 "Uname: {0}<br />Passwd: {1}<br />Hashpwd: {2}".format(
-            request.form['username'],
-            request.form['password'],
-            utils.hashPassword(request.form['password']))
     return render_template('login.html')
 
-@frontend.route('/logout')
+@frontend.route('/logout/')
 def logout():
     """Funkcja powoduje wyczyszczenie sesji użytkownika,
        a w efekcie wylogowanie z systemu.