diff --git a/backend/handler/db_handler.py b/backend/handler/db_handler.py index e83821df3..d88dc0ac8 100644 --- a/backend/handler/db_handler.py +++ b/backend/handler/db_handler.py @@ -7,7 +7,7 @@ from sqlalchemy.exc import ProgrammingError from logger.logger import log from config.config_loader import ConfigLoader -from models import Platform, Rom, User +from models import Platform, Rom, User, Role class DBHandler: @@ -184,3 +184,10 @@ class DBHandler: return session.scalars(select(User)).all() except ProgrammingError as e: self.raise_error(e) + + def get_admin_users(self): + try: + with self.session.begin() as session: + return session.scalars(select(User).filter_by(role=Role.ADMIN)).all() + except ProgrammingError as e: + self.raise_error(e) diff --git a/backend/models/__init__.py b/backend/models/__init__.py index c16876add..74a9d2cd8 100644 --- a/backend/models/__init__.py +++ b/backend/models/__init__.py @@ -1,3 +1,3 @@ from .platform import Platform # noqa[401] from .rom import Rom # noqa[401] -from .user import User # noqa[401] +from .user import User, Role # noqa[401] diff --git a/frontend/src/components/Dialog/User/DeleteUser.vue b/frontend/src/components/Dialog/User/DeleteUser.vue index ff0a537e5..6f39c9923 100644 --- a/frontend/src/components/Dialog/User/DeleteUser.vue +++ b/frontend/src/components/Dialog/User/DeleteUser.vue @@ -13,7 +13,15 @@ emitter.on("showDeleteUserDialog", (userToDelete) => { }); async function deleteUser() { - await deleteUserApi(user.value); + await deleteUserApi(user.value).catch(({ response, message }) => { + emitter.emit("snackbarShow", { + msg: `Unable to delete user: ${ + response?.data?.detail || response?.statusText || message + }`, + icon: "mdi-close-circle", + color: "red", + }); + }); show.value = false; } @@ -47,7 +55,9 @@ async function deleteUser() { Cancel - Confirm + Confirm