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.
The seeder is going to work with the first user model inside the
The seeder doesn't support teams.
To generate the seeder you have to run:
php artisan laratrust:seeder
database/seeds/DatabaseSeeder.php file you have to add this to the
If you have not run
php artisan vendor:publish --tag="laratrust" you should run it in order to customize the roles, modules and permissions in each case.
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:
- The first level represents the roles.
- The second level represents the modules.
- The second level assignments are the permissions.
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
return [ ... 'roles_structure' => [ 'role_name' => [ 'module_1_name' => 'a,s,e,d', ] ], 'permissions_map' => [ 'a' => 'add', 's' => 'show', 'e' => 'edit', 'd' => 'destroy' ], ... ];