X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=main.py;h=9556f961fc79e69c2b6d4e3ba970cbc787d687ce;hb=a07002ee9cb472f8317a87e9167f79fa34a5e85e;hp=2ab60f8ef8d201050e36a9d8f48836b775b75bf8;hpb=a2d3a797375c6e14889d89b975ee32e3068926b6;p=cavote.git diff --git a/main.py b/main.py index 2ab60f8..9556f96 100755 --- a/main.py +++ b/main.py @@ -112,19 +112,30 @@ def login_key(userid, key): def user(userid): if int(userid) != session.get('user').get('id'): abort(401) - return render_template('user.html') + groups = query_db('select * from roles join user_role on id=id_role where id_user = ?', userid) + return render_template('user.html', groups=groups) @app.route('/user/settings/', methods=['GET', 'POST']) def user_edit(userid): if int(userid) != session.get('user').get('id'): 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['user']['id']]) - g.db.commit() - disconnect_user() # :TODO:maethor:120528: Maybe useless, but this is simple way to refresh session :D - flash(u'Votre profil a été mis à jour !', 'success') - return redirect(url_for('login')) + if query_db('select * from users where email=? and id!=?', [request.form['email'], userid], one=True) is None: + if query_db('select * from users where name=? and id!=?', [request.form['name'], userid], one=True) is None: + g.db.execute('update users set email = ?, name = ?, organization = ? where id = ?', + [request.form['email'], request.form['name'], request.form['organization'], session['user']['id']]) + g.db.commit() + disconnect_user() # :TODO:maethor:120528: Maybe useless, but this is simple way to refresh session :D + user = query_db('select * from users where id=?', [userid], one=True) + if user is None: + flash(u'Une erreur s\'est produite.', 'error') + return redirect(url_for('login')) + connect_user(user) + flash(u'Votre profil a été mis à jour !', 'success') + else: + flash(u'Le nom ' + request.form['name'] + u' est déjà pris ! Veuillez en choisir un autre.', 'error') + else: + flash(u'Il existe déjà un compte pour cette adresse e-mail : ' + request.form['email'], 'error') return render_template('user_edit.html') @app.route('/user/password/', methods=['GET', 'POST'])