From 4794d69687bcdaabcdb7b4f4be0c5bb11e7eb147 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Wed, 24 Sep 2025 02:22:36 +0200 Subject: [PATCH] fix: correct user deletion (#10385) * Ensure all user sessions are cleared * remove double warning text on user delete --- src/backend/InvenTree/users/api.py | 8 ++++++++ src/frontend/src/tables/settings/UserTable.tsx | 1 + 2 files changed, 9 insertions(+) diff --git a/src/backend/InvenTree/users/api.py b/src/backend/InvenTree/users/api.py index f8f2e8e067..8975e4fc10 100644 --- a/src/backend/InvenTree/users/api.py +++ b/src/backend/InvenTree/users/api.py @@ -144,6 +144,14 @@ class UserDetail(RetrieveUpdateDestroyAPI): serializer_class = ExtendedUserSerializer permission_classes = [InvenTree.permissions.StaffRolePermissionOrReadOnly] + def perform_destroy(self, instance): + """Override destroy method to ensure sessions are deleted first.""" + # Remove all sessions for this user + if sessions := instance.usersession_set.all(): + sessions.delete() + # Normally delete the user + return super().perform_destroy(instance) + class UserDetailSetPassword(UpdateAPI): """Allows superusers to set the password for a user.""" diff --git a/src/frontend/src/tables/settings/UserTable.tsx b/src/frontend/src/tables/settings/UserTable.tsx index f8cadf199b..aa24738902 100644 --- a/src/frontend/src/tables/settings/UserTable.tsx +++ b/src/frontend/src/tables/settings/UserTable.tsx @@ -358,6 +358,7 @@ export function UserTable({ title: t`Delete user`, successMessage: t`User deleted`, table: table, + preFormContent: <>, preFormWarning: t`Are you sure you want to delete this user?` });