REALTIME - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: обновление доступов workspace
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user