Skip to content

Commit 6b69635

Browse files
authored
chore: warn user without permissions to view org members (coder#16721)
resolves coder/internal#392 In situations where a user accesses the org members without any permissions beyond that of a normal member, they will only be able to see themselves in the list of members. This PR shows a warning to users who arrive at the members page in this situation. <img width="1145" alt="Screenshot 2025-02-26 at 18 36 59" src="https://github.com/user-attachments/assets/16ad6ce1-2aa9-4719-bdae-914aff0fcd52" />
1 parent 2aa749a commit 6b69635

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

site/src/pages/OrganizationSettingsPage/OrganizationMembersPage.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ const OrganizationMembersPage: FC = () => {
7272
<OrganizationMembersPageView
7373
allAvailableRoles={organizationRolesQuery.data}
7474
canEditMembers={organizationPermissions.editMembers}
75+
canViewMembers={organizationPermissions.viewMembers}
7576
error={
7677
membersQuery.error ??
7778
organizationRolesQuery.error ??

site/src/pages/OrganizationSettingsPage/OrganizationMembersPageView.tsx

+14-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {
2828
TableRow,
2929
} from "components/Table/Table";
3030
import { UserAutocomplete } from "components/UserAutocomplete/UserAutocomplete";
31+
import { TriangleAlert } from "lucide-react";
3132
import { UserGroupsCell } from "pages/UsersPage/UsersTable/UserGroupsCell";
3233
import { type FC, useState } from "react";
3334
import { TableColumnHelpTooltip } from "./UserTable/TableColumnHelpTooltip";
@@ -36,6 +37,7 @@ import { UserRoleCell } from "./UserTable/UserRoleCell";
3637
interface OrganizationMembersPageViewProps {
3738
allAvailableRoles: readonly SlimRole[] | undefined;
3839
canEditMembers: boolean;
40+
canViewMembers: boolean;
3941
error: unknown;
4042
isAddingMember: boolean;
4143
isUpdatingMemberRoles: boolean;
@@ -58,6 +60,7 @@ export const OrganizationMembersPageView: FC<
5860
> = ({
5961
allAvailableRoles,
6062
canEditMembers,
63+
canViewMembers,
6164
error,
6265
isAddingMember,
6366
isUpdatingMemberRoles,
@@ -70,7 +73,7 @@ export const OrganizationMembersPageView: FC<
7073
return (
7174
<div>
7275
<SettingsHeader title="Members" />
73-
<Stack>
76+
<div className="flex flex-col gap-4">
7477
{Boolean(error) && <ErrorAlert error={error} />}
7578

7679
{canEditMembers && (
@@ -80,6 +83,15 @@ export const OrganizationMembersPageView: FC<
8083
/>
8184
)}
8285

86+
{!canViewMembers && (
87+
<div className="flex flex-row text-content-warning gap-2 items-center text-sm font-medium">
88+
<TriangleAlert className="size-icon-sm" />
89+
<p>
90+
You do not have permission to view members other than yourself.
91+
</p>
92+
</div>
93+
)}
94+
8395
<Table>
8496
<TableHeader>
8597
<TableRow>
@@ -154,7 +166,7 @@ export const OrganizationMembersPageView: FC<
154166
))}
155167
</TableBody>
156168
</Table>
157-
</Stack>
169+
</div>
158170
</div>
159171
);
160172
};

0 commit comments

Comments
 (0)