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/<userid>', 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/<userid>', methods=['GET', 'POST'])
{% extends "layout.html" %}
{% block body %}
-<h2>{{ session.username }}</h2>
+<h2>{{ session.user.name }}</h2>
<div class="row">
<div class="span6 well">
<form class="form-horizontal" action="{{ url_for('user_edit', userid=session.user.id) }}" method="post">
<fieldset><legend>Mise à jour du profil utilisateur</legend>
- <div class="alert"><strong>Attention :</strong> À l'issue de ce formulaire, vous devrez vous reconnecter</div>
<div class="control-group">
<label class="control-label" for="email">E-mail</label>
<div class="controls">