/** * RBAC (Role-Based Access Control) Module * * Enterprise-grade RBAC implementation for React applications. * Supports role hierarchies, permission matrices, and policy-based access control. * * @module auth/rbac * * @example * ```tsx * // Basic setup * import { RBACProvider, useRBAC } from '@/lib/auth/rbac'; * * const rbacConfig = { * roles: [ * { id: 'admin', name: 'Admin', permissions: ['*'], priority: 100 }, * { id: 'manager', name: 'Manager', permissions: ['team:*', 'reports:*'], inherits: ['user'], priority: 50 }, * { id: 'user', name: 'User', permissions: ['profile:*', 'documents:own:*'], priority: 10 }, * ], * defaultDecision: 'deny', * enableCaching: true, * }; * * function App() { * const { user } = useAuth(); * * return ( * * * * ); * } * * // Use in components * function DocumentsPage() { * const { canCreate, canRead, canDelete, isAdmin } = useRBAC(); * * return ( *
* {canRead('documents') && } * {canCreate('documents') && } * {isAdmin && } *
* ); * } * ``` */ export { RBACProvider, RBACContext } from './rbac-context'; export type { RBACProviderProps } from './rbac-context'; export { useRBAC, usePermissions, useRoles, useResourceAccess, usePermissionGate, useRoleGate, useAccessChecks, } from './useRBAC'; export type { UseRBACReturn } from './useRBAC'; export { RBACEngine, createRBACEngine } from './rbac-engine'; export { PermissionMatrixBuilder, createPermissionMatrixBuilder, createStandardMatrix, createHealthcareMatrix, mergePermissionMatrices, filterEntriesByRole, filterEntriesByResource, getDefinedResources, getDefinedRoles, validatePermissionMatrix, PERMISSION_ACTIONS, CRUD_ACTIONS, READ_ONLY_ACTIONS, FULL_ACCESS_ACTIONS, } from './permission-matrix'; export { RoleHierarchyManager, createRoleHierarchy, STANDARD_ROLE_HIERARCHY, HEALTHCARE_ROLE_HIERARCHY, } from './role-hierarchy'; export { ResourcePermissionManager, createResourcePermissionManager, levelGrantsAction, getMinimumLevelForAction, comparePermissionLevels, PERMISSION_LEVELS, LEVEL_ACTIONS, } from './resource-permissions'; export { PolicyEvaluator, createPolicyEvaluator } from './policy-evaluator'; export type { EvaluationContext } from './policy-evaluator'; export type { PermissionAction, PermissionScope, StructuredPermission, PermissionCondition, RoleDefinition, RoleAssignment, RoleHierarchy, PermissionMatrix, PermissionMatrixEntry, Policy, PolicySet, PolicyEffect, PolicyResult, PolicySubject, PolicyResource, PolicyCondition, AccessRequest, RequestContext, EvaluationResult, Obligation, ResourcePermission, ResourceACL, RBACConfig, RBACState, RBACContextValue, RBACAuditEvent, RBACAuditHandler, } from './types';