Kobana UI
GitHub

RequirePermission

Gate de permissão com suporte a single/all/any e fallback AccessDenied.

Carregando...

Instalação

npx @kobana/ui add require-permission

Importação

import { RequirePermission, AccessDenied } from "@/components/kobana/require-permission"

Props

PropTipoDefaultDescrição
permissionstringPermissão única
allPermissionsstring[]Todas devem passar (AND)
anyPermissionsstring[]Qualquer uma (OR)
can(permission: string) => booleanFunção de verificação (obrigatório)
isLoadingbooleanRenderiza null enquanto carrega
childrenReactNodeConteúdo protegido
fallbackReactNodenullConteúdo quando negado
classNamestringClasses adicionais

Uso

<RequirePermission permission="charges:create" can={can}>
  <Button>Nova Cobrança</Button>
</RequirePermission>

<RequirePermission
  allPermissions={["charges:read", "charges:delete"]}
  can={can}
  fallback={<AccessDenied onBack={() => router.back()} />}
>
  <DangerZone />
</RequirePermission>

HOC

const ProtectedPage = withRequirePermission(MyPage, {
  permission: "admin",
})

On this page