comparison 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
comparison
equal deleted inserted replaced
5:3ba60dfc1d64 6:27d63cac76ac
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # -*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 3
4 from flask import Module, render_template, request, url_for 4 from flask import Module, render_template, request, url_for
5 from flask import escape, session, redirect, flash, abort 5 from flask import escape, session, redirect, flash, abort
6 from mfrontend import db, utils 6 from mfrontend import db, utils, exceptions
7 frontend = Module(__name__) 7 frontend = Module(__name__)
8 8
9 @frontend.route('/') 9 @frontend.route('/')
10 def index(): 10 def index():
11 return render_template('hello.html') 11 return render_template('hello.html')
12 12
13 @frontend.route('/install') 13 @frontend.route('/install/')
14 def install(): 14 def install():
15 """Instaluje aplikację, tworząc pustą bazę danych 15 """Instaluje aplikację, tworząc pustą bazę danych
16 według schematu. 16 według schematu.
17 """ 17 """
18 if db.init_db(): 18 if db.init_db():
19 return render_template('install_ok.html') 19 return render_template('install_ok.html')
20 else: 20 else:
21 abort(404) 21 abort(404)
22 22
23 @frontend.route('/login', methods=['GET', 'POST']) 23 @frontend.route('/login/', methods=['GET', 'POST'])
24 def login(): 24 def login():
25 if request.method == 'POST': 25 if request.method == 'POST':
26 if db.user_can_login(request.form['username'], 26 try:
27 request.form['password']) : 27 if db.user_can_login(request.form['username'],
28 session['logged_in'] = True 28 request.form['password']) :
29 session['logged_user'] = request.form['username'] 29 session['logged_in'] = True
30 flash('Zalogowano') 30 session['logged_user'] = request.form['username']
31 flash('Zalogowano')
32 return redirect(url_for('index'))
33 else:
34 raise exceptions.BadPasswordOrUsername()
35 except (exceptions.UserNotActivated,
36 exceptions.BadPasswordOrUsername) as e:
37 flash(e)
31 return redirect(url_for('index')) 38 return redirect(url_for('index'))
32 return "Uname: {0}<br />Passwd: {1}<br />Hashpwd: {2}".format(
33 request.form['username'],
34 request.form['password'],
35 utils.hashPassword(request.form['password']))
36 return render_template('login.html') 39 return render_template('login.html')
37 40
38 @frontend.route('/logout') 41 @frontend.route('/logout/')
39 def logout(): 42 def logout():
40 """Funkcja powoduje wyczyszczenie sesji użytkownika, 43 """Funkcja powoduje wyczyszczenie sesji użytkownika,
41 a w efekcie wylogowanie z systemu. 44 a w efekcie wylogowanie z systemu.
42 """ 45 """
43 session.clear() 46 session.clear()