diff --git a/apps/backend/src/application/controllers/users.controller.ts b/apps/backend/src/application/controllers/users.controller.ts index cea615e..197b068 100644 --- a/apps/backend/src/application/controllers/users.controller.ts +++ b/apps/backend/src/application/controllers/users.controller.ts @@ -307,18 +307,17 @@ export class UsersController { @Param('id', ParseUUIDPipe) id: string, @CurrentUser() currentUser: UserPayload ): Promise { - this.logger.log(`[Admin: ${currentUser.email}] Deactivating user: ${id}`); + this.logger.log(`[Admin: ${currentUser.email}] Deleting user: ${id}`); const user = await this.userRepository.findById(id); if (!user) { throw new NotFoundException(`User ${id} not found`); } - // Deactivate user - user.deactivate(); - await this.userRepository.save(user); + // Permanently delete user from database + await this.userRepository.deleteById(id); - this.logger.log(`User deactivated successfully: ${id}`); + this.logger.log(`User deleted successfully: ${id}`); } /** diff --git a/apps/frontend/app/dashboard/settings/users/page.tsx b/apps/frontend/app/dashboard/settings/users/page.tsx index bbcd431..efa126c 100644 --- a/apps/frontend/app/dashboard/settings/users/page.tsx +++ b/apps/frontend/app/dashboard/settings/users/page.tsx @@ -18,6 +18,8 @@ export default function UsersManagementPage() { const queryClient = useQueryClient(); const { user: currentUser } = useAuth(); const [showInviteModal, setShowInviteModal] = useState(false); + const [openMenuId, setOpenMenuId] = useState(null); + const [menuPosition, setMenuPosition] = useState<{ top: number; left: number } | null>(null); const [inviteForm, setInviteForm] = useState({ email: '', firstName: '', @@ -185,14 +187,14 @@ export default function UsersManagementPage() { )} {/* Users Table */} -
+
{isLoading ? (
Loading users...
) : users?.users && users.users.length > 0 ? ( -
+
@@ -254,28 +256,39 @@ export default function UsersManagementPage() { @@ -313,6 +326,73 @@ export default function UsersManagementPage() { )} + {/* Actions Menu Modal */} + {openMenuId && menuPosition && ( + <> +
{ + setOpenMenuId(null); + setMenuPosition(null); + }} + /> +
+
+ + +
+
+ + )} + {/* Invite Modal */} {showInviteModal && (
- + {new Date(user.createdAt).toLocaleDateString()}