si-klinik/sk-klinik.my.id/database/seeders/PermissionSeeder.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']);
}
}