Introduction
Available since v5.10.x
Offers a small ACL implementation for Laravel, with roles and permissions (grouped) that are stored in a database.
Database tables
The following diagram illustrates the database tables (pivot tables not shown).
┌───────┐
│ users │
└───┬───┘
│
│ Each user can be assigned none or many roles
│
┌───▼───┐
│ roles │
└───┬───┘
│
│ Each role is granted none or many permissions
│
┌───▼─────────┐
│ permissions │
└───┬─────────┘
│
│ Each permission belongs to a group of permissions
│
┌───▼────┐
│ groups │
└────────┘
Alternatives
There are many ACL alternatives available, for Laravel. Amongst them is the Spatie Laravel Permission package, which has been a great source of inspiration for this package.
Please know that this package's implementation and core concept differs from that of Spatie. The "Laravel Permission" permission package allows you to grant permissions directly to user model, if you wish. This package does not allow such - permissions can only be granted to roles. Nevertheless, Spatie offers support for multiple Guards and tons of other nice features. You are encouraged to review their documentation, before proceeding here.