Permissions V0 Adapter (Vuetify0PermissionAdapter)
TheVuetify0PermissionAdapter is the default permission adapter for Vuetify Zero, providing role-based (RBAC) and attribute-based (ABAC) access control.
Import
Basic Usage
The
Vuetify0PermissionAdapter is the default adapter when no adapter is specified:Using in Components
Permission Structure
Permissions are defined as role-action-subject tuples:Basic Permissions
Checking Permissions
Basic Permission Check
With Context
Conditional Permissions (ABAC)
Function-Based Conditions
Time-Based Conditions
Resource Limit Conditions
Multiple Roles
TypeScript
Permission Format
The adapter uses a dot-notation key format internally:Custom Permission Adapter
Create a custom adapter by extendingPermissionAdapter:
Integration with External Systems
API Reference
Constructor
Methods
can(role, action, subject, context, permissions)
Check if a role can perform an action on a subject.
Parameters:
role: ID- Role identifieraction: string- Action to perform (e.g., ‘read’, ‘write’)subject: string- Subject/resource (e.g., ‘users’, ‘posts’)context: Record<string, any>- Additional context for ABACpermissions: PermissionContext- Permissions context
boolean - true if allowed, false otherwise
Example:
Permission Resolution
- Construct key -
{role}.{action}.{subject} - Lookup ticket - Find permission in registry
- Check value - If no ticket, return
false - Evaluate condition - If function, call with context; if boolean, return value
Features
- RBAC support - Role-based access control
- ABAC support - Attribute-based with function conditions
- Batch permissions - Define multiple actions/subjects at once
- Context-aware - Pass runtime data for dynamic checks
- Type-safe - Full TypeScript support
- Zero dependencies - Pure JavaScript implementation
Common Patterns
Admin Override
Hierarchical Roles
Resource Ownership
See Also
- usePermissions - Permissions composable
- createTokens - Token system used internally
- CASL - Alternative ABAC library