From c08780fbf0082937980843f169521af15c487c4b Mon Sep 17 00:00:00 2001 From: Alexey Kudelko Date: Mon, 22 Jul 2024 11:08:35 +0300 Subject: [PATCH] fixed leave --- projects/views.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/projects/views.py b/projects/views.py index e2a99ae3..67b491aa 100644 --- a/projects/views.py +++ b/projects/views.py @@ -504,11 +504,21 @@ class LeaveProject(generics.GenericAPIView): permission_classes = [IsAuthenticated] def delete(self, request, project_pk: int) -> Response: + current_user_id = self.request.user.id collaborator = get_object_or_404( Collaborator.objects.all(), project_id=project_pk, - user_id=self.request.user.id, + user_id=current_user_id, ) + project = Project.objects.get(id=project_pk).select_related("leader") + if project.leader.id == current_user_id: + return Response( + { + "error": "You can't leave if you are a leader of a project. " + "Please, switch leadership!" + }, + status=status.HTTP_422_UNPROCESSABLE_ENTITY, + ) collaborator.delete() return Response(status=204)