Seeder¶
Laratrust comes with a database seeder, this seeder helps you filling the permissions for each role depending on the module, and creates one user for each role.
Note
Laratrust now accepts multiple user models so the seeder is going to work with the first user model inside the user_models array.
To generate the seeder you have to run:
php artisan laratrust:seeder
and:
composer dump-autoload
And in the database/seeds/DatabaseSeeder.php
file you have to add this to the run
method:
$this->call(LaratrustSeeder::class);
Note
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.
Your config/laratrust_seeder.php
file looks like this:
return [
'role_structure' => [
'superadministrator' => [
'users' => 'c,r,u,d',
'acl' => 'c,r,u,d',
'profile' => 'r,u'
],
'administrator' => [
'users' => 'c,r,u,d',
'profile' => 'r,u'
],
'user' => [
'profile' => 'r,u'
],
],
'permission_structure' => [
'cru_user' => [
'profile' => 'c,r,u'
],
],
...
];
To understand the role_structure
you must know:
- The first level is the roles.
- The second level is 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',
],
]
];
To understand the permission_structure
you must know:
- The first level is the users.
- The second level is the modules.
- The second level assignments are the permissions.
With that in mind, you should arrange your users, modules and permissions like this:
return [
'permission_structure' => [
'user' => [
'module' => 'permissions',
],
]
];
Permissions¶
In case that you do not want to use the c,r,u,d
permissions, in the config/laratrust_seeder.php
there the permissions_map
where you can change the permissions mapping.