X-Git-Url: https://git.cyclocoop.org/%7B%7B%20url_for%28%27vote%27%2C%20idvote=vote.voteid%29%20%7D%7D?a=blobdiff_plain;f=main.py;h=7ff598f5599512e9accaf350ad90aae470b45556;hb=09d46c3c1c476da11f48f953d257c9fc6e31b8cd;hp=bdbd032ed78544c505ebc4af3b0ba0cd027cb8c8;hpb=c99b9d04a42f493cf7b8bf1e81022bb65e2b939b;p=cavote.git diff --git a/main.py b/main.py index bdbd032..7ff598f 100755 --- a/main.py +++ b/main.py @@ -165,6 +165,41 @@ def add_user(): flash(u"Vous devez spécifier une adresse email.", 'error') return render_template('add_user.html') +#------------- +# Roles admin + +@app.route('/roles') +def show_roles(): + if not session.get('user').get('is_admin'): + abort(401) + roles = query_db('select * from roles') + return render_template('show_roles.html', roles=roles) + +@app.route('/roles/admin/add', methods=['POST']) +def add_role(): + if not session.get('user').get('is_admin'): + abort(401) + if request.method == 'POST': + if request.form['name']: + g.db.execute('insert into roles (name) values (?)', [request.form['name']]) + g.db.commit() + else: + flash(u"Vous devez spécifier un nom.", "error") + return redirect(url_for('show_roles')) + +@app.route('/roles/admin/delete/') +def del_role(idrole): + if not session.get('user').get('is_admin'): + abort(401) + role = query_db('select * from roles where id = ?', [idrole], one=True) + if role is None: + abort(404) + if role['system']: + abort(401) + g.db.execute('delete from roles where id = ?', [idrole]) + g.db.commit() + return redirect(url_for('show_roles')) + #------------ # Votes list