Skip to content

AccessControl

Since 1.5.0

Unified access control system combining RBAC and ABAC.

Signature

typescript
type AccessControl = {
  check: (context: PolicyContext) => PolicyDecision
  grant: (permission: Permission) => void
  revoke: (permission: Permission) => void
  getPermissions: (principal: string) => Permission[]
}

Examples

Basic Usage

typescript
import type { AccessControl } from 'uni-types'

const ac: AccessControl = {
  check: (context) => ({ allowed: true, reason: 'Permission granted' }),
  grant: (permission) => { /* grant permission */ },
  revoke: (permission) => { /* revoke permission */ },
  getPermissions: (principal) => []
}

Released under the MIT License.