61 lines
1.5 KiB
PHP
61 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class PermissionSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
// Reset cache permission Spatie
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
|
|
$permissions = [
|
|
// Dashboard
|
|
'view-dashboard',
|
|
|
|
// User Management
|
|
'user-list',
|
|
'user-manage',
|
|
'role-manage',
|
|
'permission-manage',
|
|
|
|
// Patient Management
|
|
'patient-list',
|
|
'patient-manage',
|
|
'patient-print',
|
|
|
|
// News & Category
|
|
'news-list',
|
|
'news-manage',
|
|
'category-manage',
|
|
|
|
// Operations
|
|
'antrean-manage',
|
|
'doctor-manage',
|
|
'service-manage',
|
|
|
|
// System Settings (Pastikan pakai 's')
|
|
'settings-manage',
|
|
];
|
|
|
|
foreach ($permissions as $permission) {
|
|
Permission::firstOrCreate([
|
|
'name' => $permission,
|
|
'guard_name' => 'web'
|
|
]);
|
|
}
|
|
|
|
// Setup Role Admin
|
|
$adminRole = Role::firstOrCreate(['name' => 'admin', 'guard_name' => 'web']);
|
|
$adminRole->syncPermissions(Permission::all());
|
|
|
|
// Setup Role Lainnya
|
|
Role::firstOrCreate(['name' => 'patient', 'guard_name' => 'web']);
|
|
Role::firstOrCreate(['name' => 'guest', 'guard_name' => 'web']);
|
|
}
|
|
}
|