def admin_roles(): """ админка ролей """ users = get_users_list() roles = get_roles_list() # возвращаем форму изменения ролей if request.method == 'GET': return render_template('users/admin_roles.html', roles=roles, users=users) # все остальное - это POST запрос, т.е. submit на форму # изменения ролей need_2_change = [x.id for x in users] # обрабатываем всех пользователей на которых стоят галочки for user_id in request.form.keys(): if not user_id.isdigit(): # проверяем, целое ли это число continue new_roles = request.form.getlist(user_id) user = load_user(int(user_id)) user.roles = new_roles user.save() need_2_change.remove(int(user_id)) # обрабатываем всех пользователей, у которых нет галочек for user_id in need_2_change: user = load_user(int(user_id)) user.roles = [] user.save() return redirect(request.args.get('next') or url_for('users.admin_roles'))
def admin_panel(): """ страница со средствами администрирования """ users = get_users_list() roles = get_roles_list() return render_template('users/admin_panel.html', users=users, roles=roles)