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
permissionstring—Permissão única
allPermissionsstring[]—Todas devem passar (AND)
anyPermissionsstring[]—Qualquer uma (OR)
can(permission: string) => boolean—Função de verificação (obrigatório)
isLoadingboolean—Renderiza null enquanto carrega
childrenReactNode—Conteúdo protegido
fallbackReactNodenullConteúdo quando negado
classNamestring—Classes 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