Mercurial > kraina_muminkow
changeset 7:d86794939fe4
Rejestracja użytkowników
author | Michał Rudowicz <michal.rudowicz@fl9.eu> |
---|---|
date | Mon, 28 Feb 2011 11:34:20 +0100 |
parents | 27d63cac76ac |
children | e00d04093c60 |
files | .hgignore frontend/mfrontend/db.py frontend/mfrontend/exceptions.py frontend/mfrontend/templates/layout.html frontend/mfrontend/templates/login.html frontend/mfrontend/templates/register.html frontend/mfrontend/views/frontend.py |
diffstat | 7 files changed, 55 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- /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
--- 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() +
--- 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."
--- 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 @@ <!doctype html> -<title>Flaskr</title> +<title>NASZA APLIKACJA!</title> <div class=page> <h1>NO HEJ</h1> <div class=metanav> {% if not session.logged_in %} - <a href="{{ url_for('login') }}">log in</a> + <a href="{{ url_for('login') }}">Zaloguj się</a> | + <a href="{{ url_for('register') }}">Załóż konto</a> {% else %} - <a href="{{ url_for('logout') }}">log out</a> + <a href="{{ url_for('logout') }}">Wyloguj się</a> {% endif %} </div> {% for message in get_flashed_messages() %}
--- 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 %} <h2>Login</h2> - {% if error %}<p class=error><strong>Error:</strong> {{ error }}{% endif %} + {% if error %}<p class=error><strong>Błąd:</strong> {{ error }}{% endif %} <form action="{{ url_for('login') }}" method=post> <dl> - <dt>Username: + <dt>Nazwa użytkownika: <dd><input type=text name=username> - <dt>Password: + <dt>Hasło: <dd><input type=password name=password> <dd><input type=submit value=Login> </dl>
--- /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 %} + <h2>Rejestracja użytkowników</h2> + {% if error %}<p class=error><strong>Błąd:</strong> {{ error }}{% endif %} + <form action="{{ url_for('register') }}" method=post> + <dl> + <dt>Nazwa użytkownika: + <dd><input type=text name=username> + <dt>Hasło: + <dd><input type=password name=password> + <dd><input type=submit value=Rejestruj> + </dl> + </form> +{% endblock %}
--- 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') +