X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=main.py;h=a1048f3057e1dfd1a7d121f188b2fb77c1cb7e6e;hb=36ca5927bad5d375c596d5c187cc5b7eb4e62038;hp=1ce53fb3a6939c3c4d2663be0a2e7ee4258615c0;hpb=16118385bb1df5fe65a3a57d7ed7550dead1e040;p=cavote.git diff --git a/main.py b/main.py index 1ce53fb..a1048f3 100755 --- 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/') +@app.route('/user/') def show_user(username): if username != session.get('username'): abort(401) + return render_template('show_user.html') + +@app.route('/user/settings/', 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/', 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') #------------