From b14c70df712066f22fe1409dceaf9899c1e7e279 Mon Sep 17 00:00:00 2001 From: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Date: Fri, 28 Jul 2023 14:29:40 +0530 Subject: [PATCH] fix: workspace member only admin delete (#1700) --- apiserver/plane/api/views/workspace.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/apiserver/plane/api/views/workspace.py b/apiserver/plane/api/views/workspace.py index 91fc4f7b9..43525f86d 100644 --- a/apiserver/plane/api/views/workspace.py +++ b/apiserver/plane/api/views/workspace.py @@ -603,6 +603,19 @@ class WorkSpaceMemberViewSet(BaseViewSet): status=status.HTTP_400_BAD_REQUEST, ) + # Check for the only member in the workspace + if ( + workspace_member.role == 20 + and WorkspaceMember.objects.filter( + workspace__slug=slug, role=20 + ).count() + == 1 + ): + return Response( + {"error": "Cannot delete the only Admin for the workspace"}, + status=status.HTTP_400_BAD_REQUEST, + ) + # Delete the user also from all the projects ProjectMember.objects.filter( workspace__slug=slug, member=workspace_member.member @@ -1035,4 +1048,3 @@ class WorkspaceLabelsEndpoint(BaseAPIView): {"error": "Something went wrong please try again later"}, status=status.HTTP_400_BAD_REQUEST, ) -