Skip to content

Commit

Permalink
fix: workspace roles for settings and members button (#6574)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
gakshita and prateekshourya29 authored Feb 10, 2025
1 parent 5096a15 commit a2328d0
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 23 deletions.
1 change: 0 additions & 1 deletion apiserver/plane/app/serializers/workspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@

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)

Expand Down
28 changes: 9 additions & 19 deletions apiserver/plane/app/views/workspace/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,6 @@ def get_queryset(self):
.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")
Expand All @@ -78,8 +72,6 @@ def get_queryset(self):
workspace_member__is_active=True,
)
.annotate(total_members=member_count)
.annotate(total_issues=issue_count)
.select_related("owner")
)

def create(self, request):
Expand Down Expand Up @@ -125,7 +117,14 @@ def create(self, request):
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,
Expand Down Expand Up @@ -168,13 +167,6 @@ def get(self, request):
.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")
Expand All @@ -189,9 +181,7 @@ def get(self, request):
),
)
)
.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
)
Expand Down
1 change: 0 additions & 1 deletion packages/types/src/workspace.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion web/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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"
/>
Expand Down
2 changes: 1 addition & 1 deletion web/core/components/workspace/sidebar/dropdown-item.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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`}
Expand Down

0 comments on commit a2328d0

Please sign in to comment.