fix: workspace roles for settings and members button (#6574)
* fix: workspace roles for settings and members button * fix: user role and member count for new workspace * chore: set role to 20 while workspace creation --------- Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
This commit is contained in:
parent
5096a15051
commit
a2328d0cbe
5 changed files with 11 additions and 23 deletions
|
|
@ -33,7 +33,6 @@ from django.core.exceptions import ValidationError
|
|||
|
||||
class WorkSpaceSerializer(DynamicBaseSerializer):
|
||||
total_members = serializers.IntegerField(read_only=True)
|
||||
total_issues = serializers.IntegerField(read_only=True)
|
||||
logo_url = serializers.CharField(read_only=True)
|
||||
role = serializers.IntegerField(read_only=True)
|
||||
|
||||
|
|
|
|||
|
|
@ -64,12 +64,6 @@ class WorkSpaceViewSet(BaseViewSet):
|
|||
.values("count")
|
||||
)
|
||||
|
||||
issue_count = (
|
||||
Issue.issue_objects.filter(workspace=OuterRef("id"))
|
||||
.order_by()
|
||||
.annotate(count=Func(F("id"), function="Count"))
|
||||
.values("count")
|
||||
)
|
||||
return (
|
||||
self.filter_queryset(super().get_queryset().select_related("owner"))
|
||||
.order_by("name")
|
||||
|
|
@ -78,8 +72,6 @@ class WorkSpaceViewSet(BaseViewSet):
|
|||
workspace_member__is_active=True,
|
||||
)
|
||||
.annotate(total_members=member_count)
|
||||
.annotate(total_issues=issue_count)
|
||||
.select_related("owner")
|
||||
)
|
||||
|
||||
def create(self, request):
|
||||
|
|
@ -125,7 +117,14 @@ class WorkSpaceViewSet(BaseViewSet):
|
|||
role=20,
|
||||
company_role=request.data.get("company_role", ""),
|
||||
)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
|
||||
# Get total members and role
|
||||
total_members=WorkspaceMember.objects.filter(workspace_id=serializer.data["id"]).count()
|
||||
data = serializer.data
|
||||
data["total_members"] = total_members
|
||||
data["role"] = 20
|
||||
|
||||
return Response(data, status=status.HTTP_201_CREATED)
|
||||
return Response(
|
||||
[serializer.errors[error][0] for error in serializer.errors],
|
||||
status=status.HTTP_400_BAD_REQUEST,
|
||||
|
|
@ -168,13 +167,6 @@ class UserWorkSpacesEndpoint(BaseAPIView):
|
|||
.values("count")
|
||||
)
|
||||
|
||||
issue_count = (
|
||||
Issue.issue_objects.filter(workspace=OuterRef("id"))
|
||||
.order_by()
|
||||
.annotate(count=Func(F("id"), function="Count"))
|
||||
.values("count")
|
||||
)
|
||||
|
||||
role = (
|
||||
WorkspaceMember.objects.filter(workspace=OuterRef("id"), member=request.user, is_active=True)
|
||||
.values("role")
|
||||
|
|
@ -189,9 +181,7 @@ class UserWorkSpacesEndpoint(BaseAPIView):
|
|||
),
|
||||
)
|
||||
)
|
||||
.select_related("owner")
|
||||
.annotate(total_members=member_count)
|
||||
.annotate(total_issues=issue_count, role=role)
|
||||
.annotate(role=role, total_members=member_count)
|
||||
.filter(
|
||||
workspace_member__member=request.user, workspace_member__is_active=True
|
||||
)
|
||||
|
|
|
|||
1
packages/types/src/workspace.d.ts
vendored
1
packages/types/src/workspace.d.ts
vendored
|
|
@ -21,7 +21,6 @@ export interface IWorkspace {
|
|||
readonly created_by: string;
|
||||
readonly updated_by: string;
|
||||
organization_size: string;
|
||||
total_issues: number;
|
||||
total_projects?: number;
|
||||
current_plan?: string;
|
||||
role: number;
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|||
<link rel="preload" href={`${API_BASE_URL}/api/users/me/settings/ `} as="fetch" crossOrigin="use-credentials" />
|
||||
<link
|
||||
rel="preload"
|
||||
href={`${API_BASE_URL}/api/users/me/workspaces/`}
|
||||
href={`${API_BASE_URL}/api/users/me/workspaces/?v=${Date.now()}`}
|
||||
as="fetch"
|
||||
crossOrigin="use-credentials"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ const SidebarDropdownItem = observer((props: TProps) => {
|
|||
</div>
|
||||
{workspace.id === activeWorkspace?.id && (
|
||||
<>
|
||||
{workspace?.role > EUserPermissions.GUEST && (
|
||||
{workspace?.role === EUserPermissions.ADMIN && (
|
||||
<div className="mt-2 mb-1 flex gap-2">
|
||||
<Link
|
||||
href={`/${workspace.slug}/settings`}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue