This plugin is built on top of Spatie's Permission package.
You can install the package via composer:
composer require reksmey/filament-spatie-roles-permissions
Since the package depends on Spatie's Permission package. You have to publish the migrations by running:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Now you should add any other configurations needed for the Spatie-Permission package.
You can add this to your form method in your UserResource
return $form->schema([
...
BelongsToManyMultiSelect::make('roles')->relationship('roles', 'name')
...
...
])
You can publish permissions seeders in additional permissions. Sometimes you may add more action such as download-pdf, export, etc.
php artisan vendor:publish --tag=filament-spatie-roles-and-permissions-seeders
Then
php artisan db:seed --class=RolesAndPermissionsSeeder
- publish service provider
php artisan vendor:publish --tag=filament-spatie-roles-and-permissions-provider
- add the package to the
extra.laravel.dont-discover
key incomposer.json
, e.g."extra": { "laravel": { "dont-discover": [ "reksmey/filament-spatie-roles-permissions" ] } }
- publish RoleResource
php artisan filament-spatie-roles-permissions:publish-role-resource
- you can customize RoleResource in App\Filament
Hope you enjoy it ❤️
If you discover any security related issues, please create an issue.
The MIT License (MIT). Please see License File for more information.