Users can change password and update profiles
[cavote.git] / main.py
diff --git a/main.py b/main.py
index 1ce53fb..a1048f3 100755 (executable)
--- a/main.py
+++ b/main.py
@@ -102,15 +102,43 @@ def login_key(username, key):
     else:
         connect_user(user)
         # :TODO:maethor:120528: Remplacer la clé pour qu'elle ne puisse plus être utilisée
-        return redirect(url_for('home'))
+        flash(u"Veuillez mettre à jour votre mot de passe", 'info')
+        return redirect(url_for('user_password'), username=user['name'])
 
 #---------------
 # User settings
 
-@app.route('/user/settings/<username>')
+@app.route('/user/<username>')
 def show_user(username):
     if username != session.get('username'):
         abort(401)
+    return render_template('show_user.html')
+
+@app.route('/user/settings/<username>', methods=['GET', 'POST'])
+def user_settings(username):
+    if username != session.get('username'):
+        abort(401)
+    if request.method == 'POST':
+        g.db.execute('update users set email = ?, name = ?, organization = ? where id = ?',
+                [request.form['email'], request.form['name'], request.form['organization'], session['userid']])
+        g.db.commit()
+        disconnect_user()
+        flash(u'Votre profil a été mis à jour !', 'success')
+        return redirect(url_for('login'))
+    return render_template('user_settings.html')
+
+@app.route('/user/password/<username>', methods=['GET', 'POST'])
+def user_password(username):
+    if username != session.get('username'):
+        abort(401)
+    if request.method == 'POST':
+        if request.form['password'] == request.form['password2']:
+            # :TODO:maethor:120528: Chiffrer le mot de passe !
+            g.db.execute('update users set password = ? where id = ?', [request.form['password'], session['userid']])
+            g.db.commit()
+            flash(u'Votre mot de passe a été mis à jour.', 'success')
+        else:
+            flash(u'Les mots de passe sont différents.', 'error')
     return render_template('user_settings.html')
 
 #------------