damianulan / laravel-sentinel
Laravel 12 context-based roles and permissions
Requires
- php: ^8.3
- ext-json: *
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
- mews/purifier: ^3.4
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- mockery/mockery: ^1.5
- phpunit/phpunit: ^11.0|^12.0
Suggests
- laravel/framework: ^11.0
README
Description
Laravel roles and permission package, that exhausts contextual approach. Assign model as role's Context. When checking permissions, you can pass model instance as argument to verify if user has permission for that instance.
Getting Started
Installation
You can install the package via composer in your laravel project:
composer require damianulan/laravel-sentinel
and publish vendor assets:
php artisan vendor:publish --tag=sentinel
Then generate Permission and Role Sentinel libraries in your main project:
php artisan make:permissions
php artisan make:roles
Define your permissions and roles in those libraries as constants.
After that, in yout main User model, add HasRolesAndPermissions
trait to your model.
use Sentinel\Traits\HasRolesAndPermissions; class User extends Authenticatable { use HasRolesAndPermissions; }
Configuration
In config/sentinel.php
you can configure package settings. It is important to set uuids
option to true, if your models use UUIDs as primary keys.
Now migration can be run.
php artisan migrate
After running your package migration and tweaking your role and permission libraries run:
php artisan sentinel:run
This command will seed roles and permissions according to instructions you have defined in your libraries. Use it each time you add new roles or permissions or make changes to existing ones.