ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: блокировка и удаление участников воркспейса в God Mode
This commit is contained in:
@@ -32,6 +32,7 @@ from plane.db.models import (
|
||||
)
|
||||
from plane.db.models.project import ProjectNetwork
|
||||
from plane.utils.host import base_host
|
||||
from plane.utils.workspace_bans import is_workspace_member_currently_banned, release_workspace_member_ban
|
||||
|
||||
|
||||
class ProjectInvitationsViewset(BaseViewSet):
|
||||
@@ -195,7 +196,19 @@ class ProjectJoinEndpoint(BaseAPIView):
|
||||
)
|
||||
|
||||
if project_invite.responded_at is None:
|
||||
project_invite.accepted = request.data.get("accepted", False)
|
||||
accepted = request.data.get("accepted", False)
|
||||
if accepted:
|
||||
user = User.objects.filter(email=email).first()
|
||||
workspace_member = WorkspaceMember.objects.filter(workspace__slug=slug, member=user).first()
|
||||
if is_workspace_member_currently_banned(workspace_member):
|
||||
return Response(
|
||||
{"error": "You are banned from this workspace"},
|
||||
status=status.HTTP_403_FORBIDDEN,
|
||||
)
|
||||
if workspace_member is not None and workspace_member.is_banned:
|
||||
release_workspace_member_ban(workspace_member)
|
||||
|
||||
project_invite.accepted = accepted
|
||||
project_invite.responded_at = timezone.now()
|
||||
project_invite.save()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user