Implement set user role from admin panel

This commit is contained in:
David Hoppenbrouwers
2022-10-10 23:40:34 +02:00
parent 0ab95990e5
commit 76e6a6deb9
2 changed files with 22 additions and 0 deletions

View File

@@ -466,6 +466,15 @@ class DB:
(until, user_id)
)
def set_user_role(self, user_id, role):
return self.change_one('''
update users
set role = ?
where user_id = ?
''',
(role, user_id)
)
def change_one(self, query, values):
db = self._db()
c = db.cursor()

13
main.py
View File

@@ -530,6 +530,19 @@ def admin_new_user():
flash(str(e), 'error')
return redirect(url_for('admin'))
@app.route('/admin/user/<int:user_id>/edit/role/', methods = ['POST'])
def admin_set_role(user_id):
try:
role = request.form['role']
if role not in ('0', '1', '2'):
flash(f'Invalid role type ({role})', 'error')
else:
db.set_user_role(user_id, role)
flash('Set user role', 'success')
except Exception as e:
flash(str(e), 'error')
return redirect(url_for('admin'))
@app.route('/admin/restart/', methods = ['POST'])
def admin_restart():
chk, user = _admin_check()