2026-04-03 04:27:07 +07:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Database\Seeders;
|
|
|
|
|
|
|
|
|
|
use App\Models\User;
|
|
|
|
|
use Illuminate\Database\Seeder;
|
2026-04-03 04:59:30 +07:00
|
|
|
use Illuminate\Support\Facades\Artisan;
|
2026-04-03 04:27:07 +07:00
|
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
|
|
|
|
|
|
class RolesAndPermissionsSeeder extends Seeder
|
|
|
|
|
{
|
|
|
|
|
public function run(): void
|
|
|
|
|
{
|
|
|
|
|
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
|
|
|
|
|
|
|
|
|
$roles = ['super_admin', 'ketua', 'bendahara', 'pengurus', 'anggota', 'auditor'];
|
|
|
|
|
|
|
|
|
|
foreach ($roles as $role) {
|
|
|
|
|
Role::firstOrCreate(['name' => $role, 'guard_name' => 'web']);
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-03 04:59:30 +07:00
|
|
|
// Generate Shield permissions untuk semua resource
|
|
|
|
|
\Artisan::call('shield:generate', ['--all' => true, '--panel' => 'admin']);
|
|
|
|
|
|
2026-04-03 04:27:07 +07:00
|
|
|
// super_admin mendapat semua permission via Shield config
|
|
|
|
|
$superAdmin = User::firstOrCreate(
|
|
|
|
|
['email' => 'admin@persegi.id'],
|
|
|
|
|
[
|
|
|
|
|
'name' => 'Super Admin',
|
|
|
|
|
'password' => bcrypt('password'),
|
|
|
|
|
'phone' => '08123456789',
|
|
|
|
|
'status' => 'aktif',
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
$superAdmin->assignRole('super_admin');
|
|
|
|
|
}
|
|
|
|
|
}
|