File: /var/www/ipsremont-demo/database/seeds/PermissionServiceRoleSeeder.php
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use App\Models\{Role, Permission};
/**
* Class PermissionServiceRoleSeeder
*/
class PermissionServiceRoleSeeder extends Seeder
{
/**
* @return string[][]
*/
protected function getPermissions()
{
return [
[
"name"=>'Управление подразделениями',
"slug"=>'branch',
"description"=>'Возможность создавать, редактировать и удалять подразделения',
],
[
"name"=>'Управление пользователями',
"slug"=>'users',
"description"=>'Возможность создавать, редактировать и удалять менеджеров и администраторов',
],
[
"name"=>'Управление сервисными центрами',
"slug"=>'services',
"description"=>'Возможность создавать, редактировать и удалять сервисные центры. Давать доступ менеджерам к ССЦ',
],
[
"name"=>'Управление складами',
"slug"=>'warehouses',
"description"=>'Возможность создавать, редактировать и удалять склады подразделений',
]
];
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
/** @var Role $roleAdmin */
$roleAdmin = Role::where('slug', 'admin')->first();
foreach ($this->getPermissions() as $permission)
{
$id = DB::table('permissions')->insertGetId($permission);
/** @var Permission $permission */
DB::table('roles_permissions')
->insert(
[
"permission_id"=>$id,
"role_id"=>$roleAdmin->id
]
);
}
/** @var Role $roleManager */
$roleManager = Role::where('slug', 'manager')->first();
$permissions = [
Permission::where('slug', 'services')->first(),
Permission::where('slug', 'warehouses')->first(),
];
foreach ($permissions as $permission) {
DB::table('roles_permissions')
->insert(
[
"permission_id"=>$permission->id,
"role_id"=>$roleManager->id
]
);
}
}
}