@@ -0,0 +1,29 @@
|
||||
// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
|
||||
// The members pages (kit-tenancy's access pages, `@conusai-kit/tenancy/ui`) are for whoever holds
|
||||
// `tenancy.member.read`. Asked in the loader, before anything renders, so a member without the permission
|
||||
// gets a real 403 and a stranger a real 404 (src/server/guard.ts).
|
||||
|
||||
import { createFileRoute, Outlet } from "@tanstack/react-router"
|
||||
import { createServerFn } from "@tanstack/react-start"
|
||||
import type { OrgParams } from "../server/org-pages"
|
||||
import { RoutePending } from "../ui/route-pending"
|
||||
import { tenancyStyles } from "../ui/tenancy-styles"
|
||||
|
||||
const ROUTE = "/$org/members"
|
||||
|
||||
const requireAccess = createServerFn({ method: "GET" })
|
||||
.validator((params: OrgParams) => params)
|
||||
.handler(async ({ data }): Promise<null> => {
|
||||
const [{ reported }, { requireAccessSection }] = await Promise.all([
|
||||
import("../server/page"),
|
||||
import("../server/org-pages"),
|
||||
])
|
||||
return reported(ROUTE, () => requireAccessSection({ ...data, section: "members" }))
|
||||
})
|
||||
|
||||
export const Route = createFileRoute("/$org/_settings/members")({
|
||||
loader: ({ params }) => requireAccess({ data: { org: params.org } }),
|
||||
head: tenancyStyles,
|
||||
pendingComponent: RoutePending,
|
||||
component: Outlet,
|
||||
})
|
||||
Reference in New Issue
Block a user