diff --git a/src/database/seeders/RolePermissionSeeder.php b/src/database/seeders/RolePermissionSeeder.php index 951e70b..b509cbb 100644 --- a/src/database/seeders/RolePermissionSeeder.php +++ b/src/database/seeders/RolePermissionSeeder.php @@ -22,21 +22,27 @@ public function run(): void ]; foreach ($permissions as $permission) { - Permission::create(['name' => $permission]); + Permission::firstOrCreate(['name' => $permission]); } - $adminRole = Role::create(['name' => 'admin']); + $adminRole = Role::firstOrCreate(['name' => 'admin']); $adminRole->givePermissionTo(Permission::all()); - $editorRole = Role::create(['name' => 'editor']); + $editorRole = Role::firstOrCreate(['name' => 'editor']); $editorRole->givePermissionTo(['users.view', 'users.edit']); - $viewerRole = Role::create(['name' => 'viewer']); + $viewerRole = Role::firstOrCreate(['name' => 'viewer']); $viewerRole->givePermissionTo(['users.view']); - $admin = User::where('email', 'admin@example.com')->first(); - if ($admin) { - $admin->assignRole('admin'); - } + // Create admin user if not exists + $admin = User::firstOrCreate( + ['email' => 'admin@example.com'], + [ + 'name' => 'Admin', + 'password' => bcrypt('password'), + 'email_verified_at' => now(), + ] + ); + $admin->assignRole('admin'); } }