diff --git a/app/modules/db/sql.py b/app/modules/db/sql.py index 5710df91..8a98e6ae 100755 --- a/app/modules/db/sql.py +++ b/app/modules/db/sql.py @@ -4242,3 +4242,17 @@ def get_role_id(user_id: int, group_id: int) -> int: out_error(e) else: return int(role_id.user_role_id) + + +def is_user_super_admin(user_id: int) -> bool: + query = UserGroups.select().where(UserGroups.user_id == user_id) + try: + query_res = query.execute() + except Exception as e: + out_error(e) + else: + for i in query_res: + if i.user_role_id == 1: + return True + else: + return False diff --git a/app/modules/roxywi/user.py b/app/modules/roxywi/user.py index 2ec381ff..7a81d526 100644 --- a/app/modules/roxywi/user.py +++ b/app/modules/roxywi/user.py @@ -48,9 +48,10 @@ def create_user(new_user: str, email: str, password: str, role: str, activeuser: def delete_user(): userdel = int(form.getvalue('userdel')) - count_super_admin_users = sql.get_super_admin_count() - if count_super_admin_users < 2: - raise Exception('error: you cannot delete a last user with superAdmin role') + if sql.is_user_super_admin(userdel): + count_super_admin_users = sql.get_super_admin_count() + if count_super_admin_users < 2: + raise Exception('error: you cannot delete a last user with superAdmin role') user = sql.select_users(id=userdel) username = '' for u in user: diff --git a/app/options.py b/app/options.py index aa16c422..2af07b4c 100644 --- a/app/options.py +++ b/app/options.py @@ -756,7 +756,10 @@ if form.getvalue('newuser') is not None: if form.getvalue('userdel') is not None: import modules.roxywi.user as roxywi_user - roxywi_user.delete_user() + try: + roxywi_user.delete_user() + except Exception as e: + print(e) if form.getvalue('updateuser') is not None: import modules.roxywi.user as roxywi_user