REALTIME - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: обновление доступов workspace

This commit is contained in:
DCCONSTRUCTIONS
2026-05-12 22:26:48 +03:00
parent 5e7c9e08a0
commit 268ab2c9b9
5 changed files with 119 additions and 3 deletions
@@ -30,6 +30,7 @@ from plane.app.permissions import (
WorkSpaceBasePermission,
WorkspaceEntityPermission,
)
from plane.app.realtime.nodedc_events import publish_nodedc_event_to_users_on_commit
# Module imports
from plane.app.serializers import WorkSpaceSerializer, WorkspaceThemeSerializer
@@ -197,6 +198,14 @@ class WorkSpaceViewSet(BaseViewSet):
def destroy(self, request, *args, **kwargs):
# Get the workspace
workspace = self.get_object()
workspace_member_ids = list(
WorkspaceMember.objects.filter(
workspace_id=workspace.id,
is_active=True,
member__is_bot=False,
deleted_at__isnull=True,
).values_list("member_id", flat=True)
)
self.remove_last_workspace_ids_from_user_settings(workspace.id)
track_event.delay(
user_id=request.user.id,
@@ -211,7 +220,16 @@ class WorkSpaceViewSet(BaseViewSet):
"deleted_at": str(timezone.now().isoformat()),
},
)
return super().destroy(request, *args, **kwargs)
response = super().destroy(request, *args, **kwargs)
publish_nodedc_event_to_users_on_commit(
"workspace.deleted",
workspace_member_ids,
{
"workspace_id": str(workspace.id),
"workspace_slug": workspace.slug,
},
)
return response
class UserWorkSpacesEndpoint(BaseAPIView):