Laravel ABAC
A flexible Attribute-Based Access Control (ABAC) implementation for Laravel 12+.
Quick Links
- Installation & Setup
- Permission Management API
- Seeding Permissions
- Architecture Diagrams
- Operations Guide
- Benchmarking
- Security Model
Key Features
- Permission CRUD API — Simple facade methods to add, get, update, and remove permissions
- Flexible Constraints — Shorthand arrays, explicit arrays, or DSL strings
- Widening Behavior — Each grant adds an OR branch for additive access
- Idempotent Operations — Duplicate constraints are automatically deduplicated
- Middleware Protection — Route protection via
abacmiddleware - Cache Invalidation — Automatic cache clearing on policy updates with optional write-flush toggle for bulk operations
Installation
composer require zennit/abac
php artisan vendor:publish --provider="zennit\ABAC\Providers\AbacServiceProvider"
php artisan migrate