Files
GSB-Construction/database/seeders/RolePermissionSeeder.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);
}
}
}
}