Skip to content

frontend


Function: default()

default(props): string | number | bigint | boolean | Iterable\<ReactNode, any, any> | Promise\<AwaitedReactNode> | Element | null | undefined

Defined in: src/auth/RequirePermission.tsx:68

Require Permission

Route protection component that ensures user has required permission level. Implements defense-in-depth security pattern:

Security Strategy: - Patient users: Always 404 for admin routes (hide existence) - Staff users: 404 for admin routes by default, redirect if specified - Backend: Always validates permissions (never trust frontend alone)

Parameters

props

RequirePermissionProps

Component props

Returns

string | number | bigint | boolean | Iterable\<ReactNode, any, any> | Promise\<AwaitedReactNode> | Element | null | undefined

Protected content, redirect, or 404 based on permissions

Examples

// Require admin access, show 404 to patients, redirect staff
<RequirePermission level="admin">
  <PatientAdminPage />
</RequirePermission>
// Require staff access, redirect anyone without access
<RequirePermission level="staff" fallback="redirect">
  <ClinicalDashboard />
</RequirePermission>