annotate 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
rev   line source
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
1 #!/usr/bin/python
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
2 # -*- coding: utf-8 -*-
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
3
5
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
4 from flask import Module, render_template, request, url_for
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
5 from flask import escape, session, redirect, flash, abort
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
6 from mfrontend import db, utils, exceptions
1
michalr
parents:
diff changeset
7 frontend = Module(__name__)
michalr
parents:
diff changeset
8
michalr
parents:
diff changeset
9 @frontend.route('/')
michalr
parents:
diff changeset
10 def index():
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
11 return render_template('hello.html')
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
12
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
13 @frontend.route('/install/')
5
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
14 def install():
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
15 """Instaluje aplikację, tworząc pustą bazę danych
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
16 według schematu.
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
17 """
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
18 if db.init_db():
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
19 return render_template('install_ok.html')
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
20 else:
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
21 abort(404)
3ba60dfc1d64 Dodałem prosty instalator aplikacji tworzący bazę danych ze schematu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 4
diff changeset
22
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
23 @frontend.route('/login/', methods=['GET', 'POST'])
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
24 def login():
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
25 if request.method == 'POST':
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
26 try:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
27 if db.user_can_login(request.form['username'],
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
28 request.form['password']) :
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
29 session['logged_in'] = True
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
30 session['logged_user'] = request.form['username']
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
31 flash('Zalogowano')
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
32 return redirect(url_for('index'))
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
33 else:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
34 raise exceptions.BadPasswordOrUsername()
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
35 except (exceptions.UserNotActivated,
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
36 exceptions.BadPasswordOrUsername) as e:
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
37 flash(e)
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
38 return redirect(url_for('index'))
3
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
39 return render_template('login.html')
79fc37fe85a6 Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents: 1
diff changeset
40
6
27d63cac76ac Konta użytkowników muszą być aktywowane + ładniejsze wyświetlanie błędów przy logowaniu
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents: 5
diff changeset
41 @frontend.route('/logout/')
4
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
42 def logout():
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
43 """Funkcja powoduje wyczyszczenie sesji użytkownika,
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
44 a w efekcie wylogowanie z systemu.
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
45 """
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
46 session.clear()
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
47 flash('Wylogowano')
cf786ee26a22 MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
michalr
parents: 3
diff changeset
48 return redirect(url_for('index'))