# HG changeset patch # User Michał Rudowicz # Date 1298889260 -3600 # Node ID d86794939fe417959cda7f722c7e9d7ee9758c41 # Parent 27d63cac76ac2301d0f759fe5b84be03febfb495 Rejestracja użytkowników diff -r 27d63cac76ac -r d86794939fe4 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Mon Feb 28 11:34:20 2011 +0100 @@ -0,0 +1,4 @@ +syntax: glob + +*.pyc +*.swp diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/db.py --- a/frontend/mfrontend/db.py Mon Feb 28 11:14:35 2011 +0100 +++ b/frontend/mfrontend/db.py Mon Feb 28 11:34:20 2011 +0100 @@ -73,8 +73,13 @@ @param password Hasło w czystym tekście, funkcja sama zajmie się hashowaniem """ - user = query_db('select * from users where username = ?', + user = query_db('select * from users where username = ?;', [username], one=True) if user is not None: - raise Exception(u'Użytkownik o takiej nazwie już istnieje') - hashedPasswd = utils.hashPassword(password) + raise exceptions.UserExists + hashedPassword = utils.hashPassword(password) + # teraz właściwe dodawanie danych do bazy + query_db('INSERT INTO users (username, password, activated) VALUES (?,?,0);', + [username, hashedPassword]) + g.db.commit() + diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/exceptions.py --- a/frontend/mfrontend/exceptions.py Mon Feb 28 11:14:35 2011 +0100 +++ b/frontend/mfrontend/exceptions.py Mon Feb 28 11:34:20 2011 +0100 @@ -12,3 +12,9 @@ pass def __str__(self): return u"Błędna nazwa użytkownika lub hasło." + +class UserExists(Exception): + def __init__(self): + pass + def __str__(self): + return u"Użytkownik o takiej nazwie jest już zarejestrowany." diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/templates/layout.html --- a/frontend/mfrontend/templates/layout.html Mon Feb 28 11:14:35 2011 +0100 +++ b/frontend/mfrontend/templates/layout.html Mon Feb 28 11:34:20 2011 +0100 @@ -1,12 +1,13 @@ -Flaskr +NASZA APLIKACJA!

NO HEJ

{% if not session.logged_in %} - log in + Zaloguj się | + Załóż konto {% else %} - log out + Wyloguj się {% endif %}
{% for message in get_flashed_messages() %} diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/templates/login.html --- a/frontend/mfrontend/templates/login.html Mon Feb 28 11:14:35 2011 +0100 +++ b/frontend/mfrontend/templates/login.html Mon Feb 28 11:34:20 2011 +0100 @@ -1,12 +1,12 @@ {% extends "layout.html" %} {% block body %}

Login

- {% if error %}

Error: {{ error }}{% endif %} + {% if error %}

Błąd: {{ error }}{% endif %}

-
Username: +
Nazwa użytkownika:
-
Password: +
Hasło:
diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/templates/register.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/frontend/mfrontend/templates/register.html Mon Feb 28 11:34:20 2011 +0100 @@ -0,0 +1,14 @@ +{% extends "layout.html" %} +{% block body %} +

Rejestracja użytkowników

+ {% if error %}

Błąd: {{ error }}{% endif %} + +

+
Nazwa użytkownika: +
+
Hasło: +
+
+
+
+{% endblock %} diff -r 27d63cac76ac -r d86794939fe4 frontend/mfrontend/views/frontend.py --- a/frontend/mfrontend/views/frontend.py Mon Feb 28 11:14:35 2011 +0100 +++ b/frontend/mfrontend/views/frontend.py Mon Feb 28 11:34:20 2011 +0100 @@ -28,7 +28,7 @@ request.form['password']) : session['logged_in'] = True session['logged_user'] = request.form['username'] - flash('Zalogowano') + flash(u'Zalogowano') return redirect(url_for('index')) else: raise exceptions.BadPasswordOrUsername() @@ -46,3 +46,18 @@ session.clear() flash('Wylogowano') return redirect(url_for('index')) + +@frontend.route('/register/', methods=['GET', 'POST']) +def register(): + """Funkcja do rejestrowania użytkowników.""" + if request.method == 'POST': + try: + db.register_user(request.form['username'], + request.form['password']) + flash(u'Konto założone, poczekaj na akceptację administratora.') + return redirect(url_for('index')) + except exceptions.UserExists as e: + flash(e) + return redirect(url_for('register')) + return render_template('register.html') +