Skip to content

Commit a2328d0

Browse files
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>
1 parent 5096a15 commit a2328d0

File tree

5 files changed

+11
-23
lines changed

5 files changed

+11
-23
lines changed

apiserver/plane/app/serializers/workspace.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333

3434
class WorkSpaceSerializer(DynamicBaseSerializer):
3535
total_members = serializers.IntegerField(read_only=True)
36-
total_issues = serializers.IntegerField(read_only=True)
3736
logo_url = serializers.CharField(read_only=True)
3837
role = serializers.IntegerField(read_only=True)
3938

apiserver/plane/app/views/workspace/base.py

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,6 @@ def get_queryset(self):
6464
.values("count")
6565
)
6666

67-
issue_count = (
68-
Issue.issue_objects.filter(workspace=OuterRef("id"))
69-
.order_by()
70-
.annotate(count=Func(F("id"), function="Count"))
71-
.values("count")
72-
)
7367
return (
7468
self.filter_queryset(super().get_queryset().select_related("owner"))
7569
.order_by("name")
@@ -78,8 +72,6 @@ def get_queryset(self):
7872
workspace_member__is_active=True,
7973
)
8074
.annotate(total_members=member_count)
81-
.annotate(total_issues=issue_count)
82-
.select_related("owner")
8375
)
8476

8577
def create(self, request):
@@ -125,7 +117,14 @@ def create(self, request):
125117
role=20,
126118
company_role=request.data.get("company_role", ""),
127119
)
128-
return Response(serializer.data, status=status.HTTP_201_CREATED)
120+
121+
# Get total members and role
122+
total_members=WorkspaceMember.objects.filter(workspace_id=serializer.data["id"]).count()
123+
data = serializer.data
124+
data["total_members"] = total_members
125+
data["role"] = 20
126+
127+
return Response(data, status=status.HTTP_201_CREATED)
129128
return Response(
130129
[serializer.errors[error][0] for error in serializer.errors],
131130
status=status.HTTP_400_BAD_REQUEST,
@@ -168,13 +167,6 @@ def get(self, request):
168167
.values("count")
169168
)
170169

171-
issue_count = (
172-
Issue.issue_objects.filter(workspace=OuterRef("id"))
173-
.order_by()
174-
.annotate(count=Func(F("id"), function="Count"))
175-
.values("count")
176-
)
177-
178170
role = (
179171
WorkspaceMember.objects.filter(workspace=OuterRef("id"), member=request.user, is_active=True)
180172
.values("role")
@@ -189,9 +181,7 @@ def get(self, request):
189181
),
190182
)
191183
)
192-
.select_related("owner")
193-
.annotate(total_members=member_count)
194-
.annotate(total_issues=issue_count, role=role)
184+
.annotate(role=role, total_members=member_count)
195185
.filter(
196186
workspace_member__member=request.user, workspace_member__is_active=True
197187
)

packages/types/src/workspace.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ export interface IWorkspace {
2121
readonly created_by: string;
2222
readonly updated_by: string;
2323
organization_size: string;
24-
total_issues: number;
2524
total_projects?: number;
2625
current_plan?: string;
2726
role: number;

web/app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
6767
<link rel="preload" href={`${API_BASE_URL}/api/users/me/settings/ `} as="fetch" crossOrigin="use-credentials" />
6868
<link
6969
rel="preload"
70-
href={`${API_BASE_URL}/api/users/me/workspaces/`}
70+
href={`${API_BASE_URL}/api/users/me/workspaces/?v=${Date.now()}`}
7171
as="fetch"
7272
crossOrigin="use-credentials"
7373
/>

web/core/components/workspace/sidebar/dropdown-item.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ const SidebarDropdownItem = observer((props: TProps) => {
8585
</div>
8686
{workspace.id === activeWorkspace?.id && (
8787
<>
88-
{workspace?.role > EUserPermissions.GUEST && (
88+
{workspace?.role === EUserPermissions.ADMIN && (
8989
<div className="mt-2 mb-1 flex gap-2">
9090
<Link
9191
href={`/${workspace.slug}/settings`}

0 commit comments

Comments
 (0)