feat: add permissions check on dns page

This commit is contained in:
Aarnav Tale
2025-04-02 23:29:28 -04:00
parent 9d046a0cf6
commit 5d3fada266
5 changed files with 102 additions and 21 deletions
+5
View File
@@ -1,6 +1,7 @@
import { XCircleFillIcon } from '@primer/octicons-react';
import { type LoaderFunctionArgs, redirect } from 'react-router';
import { Outlet, useLoaderData } from 'react-router';
import { ErrorPopup } from '~/components/Error';
import type { LoadContext } from '~/server';
import { ResponseError } from '~/server/headscale/api-client';
import cn from '~/utils/cn';
@@ -65,3 +66,7 @@ export default function Layout() {
</>
);
}
export function ErrorBoundary() {
return <ErrorPopup type="embedded" />;
}
+14
View File
@@ -93,6 +93,20 @@ export async function loader({
debug: context.config.debug,
user: session.get('user'),
uiAccess: check,
access: {
ui: await context.sessions.check(request, Capabilities.ui_access),
dns: await context.sessions.check(request, Capabilities.read_network),
users: await context.sessions.check(request, Capabilities.read_users),
policy: await context.sessions.check(request, Capabilities.read_policy),
machines: await context.sessions.check(
request,
Capabilities.read_machines,
),
settings: await context.sessions.check(
request,
Capabilities.read_feature,
),
},
onboarding: request.url.endsWith('/onboarding'),
};
} catch {