santigarcor/laratrust
Laratrust adds role and permission management to Laravel with support for multiple user models, teams, guards, caching, events, middleware, gates/policies, and an optional admin panel for managing roles and permissions.
Laratrust comes with a database seeder, this seeder helps you fill the permissions for each role depending on the module, and creates one user for each role.
::: tip NOTE
The seeder is going to work with the first user model inside the user_models array.
The seeder doesn't support teams. :::
To generate the seeder you have to run:
php artisan laratrust:seeder
Then to customize the roles, modules and permissions you can publish the laratrust_seeder.php file:
php artisan vendor:publish --tag="laratrust-seeder"
Finally:
composer dump-autoload
In the database/seeds/DatabaseSeeder.php file you have to add this to the run method:
$this->call(LaratrustSeeder::class);
Your config/laratrust_seeder.php file looks like this by default:
return [
...
'roles_structure' => [
'superadministrator' => [
'users' => 'c,r,u,d',
'payments' => 'c,r,u,d',
'profile' => 'r,u'
],
'administrator' => [
'users' => 'c,r,u,d',
'profile' => 'r,u'
],
'user' => [
'profile' => 'r,u',
],
'role_name' => [
'module_1_name' => 'c,r,u,d',
]
],
'permissions_map' => [
'c' => 'create',
'r' => 'read',
'u' => 'update',
'd' => 'delete'
],
...
];
To understand the role_structure you must know:
With that in mind, you should arrange your roles, modules and permissions like this:
return [
'role_structure' => [
'role' => [
'module' => 'permissions',
],
]
];
In case that you do not want to use the c,r,u,d permissions, you should change the permissions_map.
For example:
return [
...
'roles_structure' => [
'role_name' => [
'module_1_name' => 'a,s,e,d',
]
],
'permissions_map' => [
'a' => 'add',
's' => 'show',
'e' => 'edit',
'd' => 'destroy'
],
...
];
How can I help you explore Laravel packages today?