76 lines
2.3 KiB
PHP
76 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Role;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
class RolesAndPermissionsSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
|
|
$permissions = [
|
|
// Dashboard tabs
|
|
'dashboard.view.pertek',
|
|
'dashboard.view.rintek',
|
|
'dashboard.view.amdal',
|
|
'dashboard.view.izin_angkut',
|
|
'dashboard.view.uji_emisi',
|
|
|
|
// Menus
|
|
'penjadwalan.access',
|
|
'persetujuan_teknis.access',
|
|
'rincian_teknis.access',
|
|
'persetujuan_lingkungan.access',
|
|
'izin_angkut_olah.access',
|
|
'izin_tempat_uji_emisi.access',
|
|
|
|
// Management
|
|
'settings.manage',
|
|
'content.manage',
|
|
'master_data.manage',
|
|
];
|
|
|
|
foreach ($permissions as $perm) {
|
|
Permission::firstOrCreate(['name' => $perm]);
|
|
}
|
|
|
|
// Roles
|
|
$kadis = Role::firstOrCreate(['name' => 'Kadis']);
|
|
$ppkl = Role::firstOrCreate(['name' => 'PPKL']);
|
|
$dlh = Role::firstOrCreate(['name' => 'DLH']);
|
|
|
|
// Kadis permissions (semua dashboard tabs + modules, tanpa pengaturan/konten/master data)
|
|
$kadisPerms = [
|
|
'dashboard.view.pertek',
|
|
'dashboard.view.rintek',
|
|
'dashboard.view.amdal',
|
|
'dashboard.view.izin_angkut',
|
|
'dashboard.view.uji_emisi',
|
|
'penjadwalan.access',
|
|
'persetujuan_teknis.access',
|
|
'rincian_teknis.access',
|
|
'persetujuan_lingkungan.access',
|
|
'izin_angkut_olah.access',
|
|
'izin_tempat_uji_emisi.access',
|
|
];
|
|
$kadis->syncPermissions($kadisPerms);
|
|
|
|
// PPKL permissions (dashboard pertek + penjadwalan + persetujuan teknis)
|
|
$ppklPerms = [
|
|
'dashboard.view.pertek',
|
|
'penjadwalan.access',
|
|
'persetujuan_teknis.access',
|
|
];
|
|
$ppkl->syncPermissions($ppklPerms);
|
|
|
|
// DLH (super admin) -> assign all permissions
|
|
$dlh->syncPermissions(Permission::all());
|
|
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
}
|
|
}
|