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')
+