Files
ITWorx_MCP_Hub-Public/apps/web/src/rbac-context.tsx
T

15 lines
559 B
TypeScript

import { createContext, useContext, type ReactNode } from "react";
import type { ManagementAction, ManagementRole } from "./rbac";
import { can } from "./rbac";
const RolesContext = createContext<readonly ManagementRole[]>([]);
export function RbacProvider({ roles, children }: { roles: readonly ManagementRole[]; children: ReactNode }) {
return <RolesContext.Provider value={roles}>{children}</RolesContext.Provider>;
}
export function useCan(action: ManagementAction): boolean {
const roles = useContext(RolesContext);
return can(roles, action);
}