Skip to content

Commit 0b4b00b

Browse files
committed
Use old permission for old pages
Originally I thought I should update these to use the org-based permissions query but I think maybe I should scope my changes to just the multi-org settings page and leave the old pages alone for now.
1 parent e58b032 commit 0b4b00b

File tree

4 files changed

+12
-25
lines changed

4 files changed

+12
-25
lines changed

site/src/contexts/auth/permissions.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export const checks = {
1515
createOrganization: "createOrganization",
1616
editAnyOrganization: "editAnyOrganization",
1717
viewAnyGroup: "viewAnyGroup",
18+
createGroup: "createGroup",
1819
viewAllLicenses: "viewAllLicenses",
1920
} as const;
2021

@@ -118,6 +119,12 @@ export const permissionsToCheck = {
118119
},
119120
action: "read",
120121
},
122+
[checks.createGroup]: {
123+
object: {
124+
resource_type: "group",
125+
},
126+
action: "create",
127+
},
121128
[checks.viewAllLicenses]: {
122129
object: {
123130
resource_type: "license",

site/src/pages/GroupsPage/GroupsPage.tsx

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,16 @@ import { Helmet } from "react-helmet-async";
33
import { useQuery } from "react-query";
44
import { getErrorMessage } from "api/errors";
55
import { groups } from "api/queries/groups";
6-
import { organizationPermissions } from "api/queries/organizations";
76
import { displayError } from "components/GlobalSnackbar/utils";
8-
import { Loader } from "components/Loader/Loader";
9-
import { useDashboard } from "modules/dashboard/useDashboard";
7+
import { useAuthenticated } from "contexts/auth/RequireAuth";
108
import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility";
119
import { pageTitle } from "utils/page";
1210
import GroupsPageView from "./GroupsPageView";
1311

1412
export const GroupsPage: FC = () => {
15-
const { organizations } = useDashboard();
13+
const { permissions } = useAuthenticated();
1614
const { template_rbac: isTemplateRBACEnabled } = useFeatureVisibility();
17-
const organization = organizations.find((o) => o.is_default);
1815
const groupsQuery = useQuery(groups("default"));
19-
const permissionsQuery = useQuery(organizationPermissions(organization?.id));
2016

2117
useEffect(() => {
2218
if (groupsQuery.error) {
@@ -26,19 +22,6 @@ export const GroupsPage: FC = () => {
2622
}
2723
}, [groupsQuery.error]);
2824

29-
useEffect(() => {
30-
if (permissionsQuery.error) {
31-
displayError(
32-
getErrorMessage(permissionsQuery.error, "Unable to load permissions."),
33-
);
34-
}
35-
}, [permissionsQuery.error]);
36-
37-
const permissions = permissionsQuery.data;
38-
if (!permissions) {
39-
return <Loader />;
40-
}
41-
4225
return (
4326
<>
4427
<Helmet>

site/src/pages/UsersPage/UsersLayout.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ import GroupAdd from "@mui/icons-material/GroupAddOutlined";
22
import PersonAdd from "@mui/icons-material/PersonAddOutlined";
33
import Button from "@mui/material/Button";
44
import { type FC, Suspense } from "react";
5-
import { useQuery } from "react-query";
65
import {
76
Link as RouterLink,
87
Outlet,
98
useNavigate,
109
useLocation,
1110
} from "react-router-dom";
12-
import { organizationPermissions } from "api/queries/organizations";
1311
import { Loader } from "components/Loader/Loader";
1412
import { Margins } from "components/Margins/Margins";
1513
import { PageHeader, PageHeaderTitle } from "components/PageHeader/PageHeader";
@@ -21,13 +19,11 @@ import { linkToUsers } from "modules/navigation";
2119

2220
export const UsersLayout: FC = () => {
2321
const { permissions } = useAuthenticated();
24-
const { experiments, organizations } = useDashboard();
22+
const { experiments } = useDashboard();
2523
const navigate = useNavigate();
2624
const feats = useFeatureVisibility();
2725
const location = useLocation();
2826
const activeTab = location.pathname.endsWith("groups") ? "groups" : "users";
29-
const organization = organizations.find((o) => o.is_default);
30-
const permissionsQuery = useQuery(organizationPermissions(organization?.id));
3127

3228
const canViewOrganizations =
3329
feats.multiple_organizations && experiments.includes("multi-organization");
@@ -48,7 +44,7 @@ export const UsersLayout: FC = () => {
4844
Create user
4945
</Button>
5046
)}
51-
{permissionsQuery.data?.createGroup && feats.template_rbac && (
47+
{permissions.createGroup && feats.template_rbac && (
5248
<Button
5349
component={RouterLink}
5450
startIcon={<GroupAdd />}

site/src/testHelpers/entities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2499,6 +2499,7 @@ export const MockPermissions: Permissions = {
24992499
createOrganization: true,
25002500
editAnyOrganization: true,
25012501
viewAnyGroup: true,
2502+
createGroup: true,
25022503
viewAllLicenses: true,
25032504
};
25042505

0 commit comments

Comments
 (0)