feat: tambah seeder roles & super_admin, widget dashboard stats

This commit is contained in:
2026-04-03 04:27:07 +07:00
parent aef6978b2a
commit 8675c14f15
12 changed files with 672 additions and 13 deletions
+2 -12
View File
@@ -2,24 +2,14 @@
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
use WithoutModelEvents;
/**
* Seed the application's database.
*/
public function run(): void
{
// User::factory(10)->create();
User::factory()->create([
'name' => 'Test User',
'email' => 'test@example.com',
$this->call([
RolesAndPermissionsSeeder::class,
]);
}
}
@@ -0,0 +1,34 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder;
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']);
}
// 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');
}
}