(self, request, pk=None)
| 231 | return Response({'success': True}, status=status.HTTP_200_OK) |
| 232 | |
| 233 | def destroy(self, request, pk=None): |
| 234 | project = get_and_check_project(request, pk, ('view_project', )) |
| 235 | |
| 236 | # Owner? Delete the project |
| 237 | if project.owner == request.user or request.user.is_superuser: |
| 238 | get_and_check_project(request, pk, ('delete_project', ), defer=True) |
| 239 | |
| 240 | return super().destroy(self, request, pk=pk) |
| 241 | else: |
| 242 | # Do not remove the project, simply remove all user's permissions to the project |
| 243 | # to avoid shared projects from being accidentally deleted |
| 244 | for p in ["add", "change", "delete", "view"]: |
| 245 | perm = p + "_project" |
| 246 | remove_perm(perm, request.user, project) |
| 247 | return Response(status=status.HTTP_204_NO_CONTENT) |
| 248 |
nothing calls this directly
no test coverage detected