Mercurial > kraina_muminkow
annotate frontend/mfrontend/views/frontend.py @ 10:58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
author | Michał Rudowicz <michal.rudowicz@fl9.eu> |
---|---|
date | Mon, 07 Mar 2011 10:47:48 +0100 |
parents | d86794939fe4 |
children | c87f82a15606 |
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 |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
5 from flask import escape, session, redirect, flash, abort, g |
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 | 7 frontend = Module(__name__) |
8 | |
9 @frontend.route('/') | |
10 def index(): | |
4 | 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']) : |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
29 session['user_id'] = db.get_user_id(request.form['username']) |
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
30 session['user_name'] = request.form['username'] |
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
|
31 session['logged_in'] = True |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
32 flash(u'Zalogowano') |
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
|
33 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
|
34 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
|
35 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
|
36 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
|
37 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
|
38 flash(e) |
4 | 39 return redirect(url_for('index')) |
3
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
40 return render_template('login.html') |
79fc37fe85a6
Zabawy z Flaskiem ciąg dalszy, zaczyna to jakoś wyglądać
michalr
parents:
1
diff
changeset
|
41 |
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
|
42 @frontend.route('/logout/') |
4 | 43 def logout(): |
44 """Funkcja powoduje wyczyszczenie sesji użytkownika, | |
45 a w efekcie wylogowanie z systemu. | |
46 """ | |
47 session.clear() | |
10
58a993029d9f
Dodawanie nowych zadań i dekorator sprawdzający zalogowanie.
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
7
diff
changeset
|
48 g.user = None |
4 | 49 flash('Wylogowano') |
50 return redirect(url_for('index')) | |
7
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
51 |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
52 @frontend.route('/register/', methods=['GET', 'POST']) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
53 def register(): |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
54 """Funkcja do rejestrowania użytkowników.""" |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
55 if request.method == 'POST': |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
56 try: |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
57 db.register_user(request.form['username'], |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
58 request.form['password']) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
59 flash(u'Konto założone, poczekaj na akceptację administratora.') |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
60 return redirect(url_for('index')) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
61 except exceptions.UserExists as e: |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
62 flash(e) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
63 return redirect(url_for('register')) |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
64 return render_template('register.html') |
d86794939fe4
Rejestracja użytkowników
Michał Rudowicz <michal.rudowicz@fl9.eu>
parents:
6
diff
changeset
|
65 |