Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b40c8e7

Browse files
committed
Move permissions page
1 parent 5ea1d23 commit b40c8e7

File tree

3 files changed

+31
-13
lines changed

3 files changed

+31
-13
lines changed

site/src/pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export const TemplateSettingsPage: FC = () => {
1515
const { template: templateName } = useParams() as { template: string }
1616
const { t } = useTranslation("templateSettingsPage")
1717
const navigate = useNavigate()
18-
const template = useTemplateSettingsContext()
18+
const { template } = useTemplateSettingsContext()
1919
const { entitlements } = useDashboard()
2020
const canSetMaxTTL =
2121
entitlements.features["advanced_template_scheduling"].enabled

site/src/pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@ import { useMachine } from "@xstate/react"
55
import { ChooseOne, Cond } from "components/Conditionals/ChooseOne"
66
import { Paywall } from "components/Paywall/Paywall"
77
import { Stack } from "components/Stack/Stack"
8-
import { useTemplateLayoutContext } from "components/TemplateLayout/TemplateLayout"
98
import { useFeatureVisibility } from "hooks/useFeatureVisibility"
109
import { useOrganizationId } from "hooks/useOrganizationId"
1110
import { FC } from "react"
1211
import { Helmet } from "react-helmet-async"
1312
import { pageTitle } from "util/page"
1413
import { templateACLMachine } from "xServices/template/templateACLXService"
14+
import { useTemplateSettingsContext } from "../TemplateSettingsLayout"
1515
import { TemplatePermissionsPageView } from "./TemplatePermissionsPageView"
1616

1717
export const TemplatePermissionsPage: FC<
1818
React.PropsWithChildren<unknown>
1919
> = () => {
2020
const organizationId = useOrganizationId()
21-
const { template, permissions } = useTemplateLayoutContext()
21+
const { template, permissions } = useTemplateSettingsContext()
2222
const { template_rbac: isTemplateRBACEnabled } = useFeatureVisibility()
2323
const [state, send] = useMachine(templateACLMachine, {
2424
context: { templateId: template.id },

site/src/pages/TemplateSettingsPage/TemplateSettingsLayout.tsx

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,41 @@ import { pageTitle } from "../../util/page"
77
import { Loader } from "components/Loader/Loader"
88
import { Outlet, useParams } from "react-router-dom"
99
import { Margins } from "components/Margins/Margins"
10-
import { getTemplateByName } from "api/api"
10+
import { checkAuthorization, getTemplateByName } from "api/api"
1111
import { useQuery } from "@tanstack/react-query"
1212
import { useOrganizationId } from "hooks/useOrganizationId"
1313

14-
const fetchTemplate = (orgId: string, name: string) => {
15-
return getTemplateByName(orgId, name)
14+
const templatePermissions = (templateId: string) => ({
15+
canUpdateTemplate: {
16+
object: {
17+
resource_type: "template",
18+
resource_id: templateId,
19+
},
20+
action: "update",
21+
},
22+
})
23+
24+
const fetchTemplateSettings = async (orgId: string, name: string) => {
25+
const template = await getTemplateByName(orgId, name)
26+
const permissions = await checkAuthorization({
27+
checks: templatePermissions(template.id),
28+
})
29+
30+
return {
31+
template,
32+
permissions,
33+
}
1634
}
1735

1836
const useTemplate = (orgId: string, name: string) => {
1937
return useQuery({
20-
queryKey: ["template", orgId, name],
21-
queryFn: () => fetchTemplate(orgId, name),
38+
queryKey: ["template", name, "settings"],
39+
queryFn: () => fetchTemplateSettings(orgId, name),
2240
})
2341
}
2442

2543
const TemplateSettingsContext = createContext<
26-
Awaited<ReturnType<typeof fetchTemplate>> | undefined
44+
Awaited<ReturnType<typeof fetchTemplateSettings>> | undefined
2745
>(undefined)
2846

2947
export const useTemplateSettingsContext = () => {
@@ -42,19 +60,19 @@ export const TemplateSettingsLayout: FC = () => {
4260
const styles = useStyles()
4361
const orgId = useOrganizationId()
4462
const { template: templateName } = useParams() as { template: string }
45-
const { data: template } = useTemplate(orgId, templateName)
63+
const { data: settings } = useTemplate(orgId, templateName)
4664

4765
return (
4866
<>
4967
<Helmet>
5068
<title>{pageTitle("Settings")}</title>
5169
</Helmet>
5270

53-
{template ? (
54-
<TemplateSettingsContext.Provider value={template}>
71+
{settings ? (
72+
<TemplateSettingsContext.Provider value={settings}>
5573
<Margins>
5674
<Stack className={styles.wrapper} direction="row" spacing={10}>
57-
<Sidebar template={template} />
75+
<Sidebar template={settings.template} />
5876
<Suspense fallback={<Loader />}>
5977
<main className={styles.content}>
6078
<Outlet />

0 commit comments

Comments
 (0)