45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class RolePermissionSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
|
|
$approveMr = Permission::firstOrCreate(['name' => 'approve_mr']);
|
|
$approvePo = Permission::firstOrCreate(['name' => 'approve_po']);
|
|
|
|
$roles = [
|
|
'project_manager' => [$approveMr, $approvePo],
|
|
'project_engineer' => [$approveMr],
|
|
'electrical_engineer' => [],
|
|
'mechanical_engineer' => [],
|
|
'autocad_operator' => [],
|
|
'safety_officer' => [],
|
|
'first_aider' => [],
|
|
'general_foreman' => [],
|
|
'foreman' => [],
|
|
'timekeeper' => [],
|
|
'leadman' => [],
|
|
'heavy_equipment_operator' => [],
|
|
'dump_truck_operator' => [],
|
|
'batch_concrete_mixer_operator'=> [],
|
|
'skilled_worker' => [],
|
|
'helper' => [],
|
|
];
|
|
|
|
foreach ($roles as $slug => $permissions) {
|
|
$role = Role::firstOrCreate(['name' => $slug]);
|
|
if (!empty($permissions)) {
|
|
$role->syncPermissions($permissions);
|
|
}
|
|
}
|
|
}
|
|
}
|