|
@@ -50,16 +50,16 @@ def valid_login(username, password):
|
|
|
return query_db('select * from users where email = ? and password = ?', [username, password], one=True)
|
|
|
|
|
|
def connect_user(user):
|
|
|
- session['userid'] = user['id']
|
|
|
- session['username'] = user['name']
|
|
|
- session['email'] = user['email']
|
|
|
- session['organization'] = user['organization']
|
|
|
- if user['is_admin'] == 1:
|
|
|
- session['is_admin'] = True
|
|
|
+ session['user'] = user # :KLUDGE:maethor:120528: Stoquer toute la ligne de la table users dans la session, c'est un peu crade…
|
|
|
+ #session['user']['id'] = user['id']
|
|
|
+ #session['user']['name'] = user['name']
|
|
|
+ #session['user']['email'] = user['email']
|
|
|
+ #session['user']['organization'] = user['organization']
|
|
|
+ #if user['is_admin'] == 1:
|
|
|
+ # session['user']['is_admin'] = True
|
|
|
|
|
|
def disconnect_user():
|
|
|
- session.pop('username', None)
|
|
|
- session.pop('is_admin', None)
|
|
|
+ session.pop('user', None)
|
|
|
|
|
|
@app.route('/login', methods=['GET', 'POST'])
|
|
|
def login():
|
|
@@ -97,11 +97,11 @@ def password_lost():
|
|
|
@app.route('/login/<userid>/<key>')
|
|
|
def login_key(userid, key):
|
|
|
user = query_db('select * from users where id = ? and key = ?', [userid, key], one=True)
|
|
|
- if user is None:
|
|
|
+ if user is None or key == "invalid":
|
|
|
abort(404)
|
|
|
else:
|
|
|
connect_user(user)
|
|
|
- # :TODO:maethor:120528: Remplacer la clé pour qu'elle ne puisse plus être utilisée
|
|
|
+ # :TODO:maethor:120528: Remplacer la clé pour qu'elle ne puisse plus être utilisée (invalid)
|
|
|
flash(u"Veuillez mettre à jour votre mot de passe", 'info')
|
|
|
return redirect(url_for('user_password'), userid=user['userid'])
|
|
|
|
|
@@ -110,17 +110,17 @@ def login_key(userid, key):
|
|
|
|
|
|
@app.route('/user/<userid>')
|
|
|
def show_user(userid):
|
|
|
- if int(userid) != session.get('userid'):
|
|
|
+ if int(userid) != session.get('user').get('id'):
|
|
|
abort(401)
|
|
|
return render_template('show_user.html')
|
|
|
|
|
|
@app.route('/user/settings/<userid>', methods=['GET', 'POST'])
|
|
|
def user_settings(userid):
|
|
|
- if int(userid) != session.get('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['userid']])
|
|
|
+ [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')
|
|
@@ -129,12 +129,12 @@ def user_settings(userid):
|
|
|
|
|
|
@app.route('/user/password/<userid>', methods=['GET', 'POST'])
|
|
|
def user_password(userid):
|
|
|
- if int(userid) != session.get('userid'):
|
|
|
+ if int(userid) != session.get('user').get('id'):
|
|
|
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.execute('update users set password = ? where id = ?', [request.form['password'], session['user']['id']])
|
|
|
g.db.commit()
|
|
|
flash(u'Votre mot de passe a été mis à jour.', 'success')
|
|
|
else:
|
|
@@ -146,7 +146,7 @@ def user_password(userid):
|
|
|
|
|
|
@app.route('/users/admin/add', methods=['GET', 'POST'])
|
|
|
def add_user():
|
|
|
- if not session.get('is_admin'):
|
|
|
+ if not session.get('user').get('is_admin'):
|
|
|
abort(401)
|
|
|
if request.method == 'POST':
|
|
|
if request.form['email']:
|
|
@@ -186,7 +186,7 @@ def show_votes(votes):
|
|
|
|
|
|
@app.route('/votes/admin/add', methods=['GET', 'POST'])
|
|
|
def add_vote():
|
|
|
- if not session.get('is_admin'):
|
|
|
+ if not session.get('user').get('is_admin'):
|
|
|
abort(401)
|
|
|
if request.method == 'POST':
|
|
|
if request.form['title']:
|