File: /var/www/vhost/disk-apps/sigedo-dev.allup.com.co/database/seeds/RolePermissionsTableSeeder.php
<?php
use App\Role;
use App\Permission;
use App\RolePermission;
use Illuminate\Database\Seeder;
class RolePermissionsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$root_permissions = Permission::all();
Role::findOrFail(1)->permissions()->sync($root_permissions->pluck('id'));
$roles = Role::where('id', '!=', 1)->orderBy('id', 'asc')->get();
$listModules = array(
2 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
3 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
4 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
5 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
6 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
7 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
8 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
9 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
10 => array(
0 => array(
0 => 'user',
1 => 'userdocument',
),
1 => array(
0 => 'edit,show,access',
1 => 'create,edit,show,access',
),
),
);
foreach ($root_permissions as $permission) {
foreach ($roles as $k => $role) {
foreach ($listModules[$role->id][0] as $key => $module) {
if(explode("_", $permission->name)[0] == $module && in_array(explode("_", $permission->name)[1], explode(",", $listModules[$role->id][1][$key]))){
RolePermission::create([
"permission_id" => $permission->id,
"role_id" => $role->id
]);
}
}
}
}
}
}