From: Julien Rabier Date: Wed, 13 Aug 2014 14:18:43 +0000 (+0200) Subject: [PATCH] by julm - fix missing check that choice belongs to current vote X-Git-Url: http://git.cyclocoop.org/?p=cavote.git;a=commitdiff_plain;h=863722fd75b39f14a2aca10f97c7c12dab49f692 [PATCH] by julm - fix missing check that choice belongs to current vote --- diff --git a/main.py b/main.py index 0d673e5..253fb87 100755 --- a/main.py +++ b/main.py @@ -467,15 +467,17 @@ def vote(idvote): if vote is None: abort(404) if can_see_vote(idvote, get_userid()): + choices = query_db('select name, id from choices where id_vote=?', [idvote]) if request.method == 'POST': if can_vote(idvote, get_userid()): if vote['is_multiplechoice'] == 0: - if query_db('select * from choices where id = ?', [request.form['choice']], one=True) is not None: - g.db.execute('insert into user_choice (id_user, id_choice) values (?, ?)', - [session.get('user').get('id'), request.form['choice']]) + choice = request.form['choice'] + if choice in [str(c['id']) for c in choices] \ + and query_db('select * from choices where id = ?', [choice], one=True) is not None: + g.db.execute('insert into user_choice (id_user, id_choice) values (?, ?)', + [session.get('user').get('id'), request.form['choice']]) g.db.commit() else: - choices = query_db('select name, id from choices where id_vote=?', [idvote]) for choice in choices: if str(choice['id']) in request.form.keys(): g.db.execute('insert into user_choice (id_user, id_choice) values (?, ?)',