71 lines
2.1 KiB
PHP
71 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\User;
|
|
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();
|
|
|
|
$resources = [
|
|
'user',
|
|
'role',
|
|
'doctor',
|
|
'patient',
|
|
'visit',
|
|
'prescription',
|
|
'medication',
|
|
'treatment',
|
|
'payment_type',
|
|
'patient_illness',
|
|
'surgery_center',
|
|
'surgery_appointment',
|
|
'osurg_initial',
|
|
'osurg_audit',
|
|
];
|
|
|
|
$actions = ['view_any', 'view', 'create', 'update', 'delete', 'delete_any', 'restore', 'restore_any', 'replicate', 'reorder', 'force_delete', 'force_delete_any'];
|
|
|
|
$pages = ['page_dashboard', 'page_sync_page', 'page_sms_logs_page'];
|
|
|
|
foreach ($resources as $resource) {
|
|
foreach ($actions as $action) {
|
|
Permission::firstOrCreate([
|
|
'name' => "{$action}_{$resource}",
|
|
'guard_name' => 'web',
|
|
]);
|
|
}
|
|
}
|
|
|
|
foreach ($pages as $page) {
|
|
Permission::firstOrCreate([
|
|
'name' => $page,
|
|
'guard_name' => 'web',
|
|
]);
|
|
}
|
|
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
|
|
$superAdmin = Role::firstOrCreate(['name' => 'super_admin', 'guard_name' => 'web']);
|
|
$superAdmin->syncPermissions(Permission::all());
|
|
|
|
Role::firstOrCreate(['name' => 'panel_user', 'guard_name' => 'web']);
|
|
|
|
$admin = User::where('username', 'admin')->first();
|
|
if ($admin) {
|
|
$admin->syncRoles(['super_admin']);
|
|
$this->command->info("super_admin role assigned to user: {$admin->name}");
|
|
} else {
|
|
$this->command->warn('Admin user not found!');
|
|
}
|
|
|
|
$this->command->info('Roles and permissions seeded successfully.');
|
|
}
|
|
}
|