diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 598492d..a88735f 100755 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -15,18 +15,35 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - User::updateOrCreate( - ['email' => 'user@demo.com'], // Kondisi pencarian + $users = [ [ - 'name' => 'Darkone', + 'email' => 'user@sibedas.com', + 'name' => 'User', 'email_verified_at' => now(), 'password' => Hash::make('password'), - 'firstname' => 'John', - 'lastname' => 'Doe', - 'position' => 'crusial', + 'firstname' => 'user', + 'lastname' => 'user', + 'position' => 'user', 'remember_token' => Str::random(10), - ] - ); + ], + [ + 'email' => 'superadmin@sibedas.com', + 'name' => 'Superadmin', + 'email_verified_at' => now(), + 'password' => Hash::make('password'), + 'firstname' => 'superadmin', + 'lastname' => 'superadmin', + 'position' => 'superadmin', + 'remember_token' => Str::random(10), + ], + ]; + + foreach ($users as $user) { + User::updateOrCreate( + ['email' => $user['email']], // Search condition + $user // Update or create with this data + ); + } $this->call([ RoleSeeder::class, diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php index 1e282ac..39f88ed 100644 --- a/database/seeders/RoleSeeder.php +++ b/database/seeders/RoleSeeder.php @@ -18,10 +18,6 @@ class RoleSeeder extends Seeder "name" => "superadmin", "description" => "show all menus for super admins", ], - [ - "name" => "admin", - "description" => "show only necessary menus for admins", - ], [ "name" => "operator", "description" => "show only necessary menus for operators", diff --git a/database/seeders/UsersRoleMenuSeeder.php b/database/seeders/UsersRoleMenuSeeder.php index 5a3fa5f..552f99c 100644 --- a/database/seeders/UsersRoleMenuSeeder.php +++ b/database/seeders/UsersRoleMenuSeeder.php @@ -16,7 +16,7 @@ class UsersRoleMenuSeeder extends Seeder public function run(): void { // Fetch roles in a single query - $roles = Role::whereIn('name', ['superadmin', 'admin', 'operator'])->get()->keyBy('name'); + $roles = Role::whereIn('name', ['superadmin', 'user', 'operator'])->get()->keyBy('name'); // Fetch all menus in a single query and index by name $menus = Menu::whereIn('name', [ @@ -38,13 +38,18 @@ class UsersRoleMenuSeeder extends Seeder 'Luar Sistem', 'Lap Pimpinan', 'Chat', 'Google Sheets', 'TPA TPT', 'Approval Pejabat', 'Undangan', 'Rekap Pembayaran', 'Lap Rekap Data Pembayaran', 'Lap PBG (PTSP)' ], - 'admin' => ['Dashboard', 'Master', 'Settings'], + 'user' => ['Dashboard', 'Data', 'Laporan', 'Neng Bedas', + 'Approval', 'Tools', 'Dashboard Pimpinan', 'Dashboard PBG', 'Users', 'Syncronize', + 'Menu', 'Role', 'Setting Dashboard', 'PBG', 'Reklame', 'Usaha atau Industri', 'Pariwisata', + 'Lap Pariwisata', 'UMKM', 'Dashboard Potensi', 'Tata Ruang', 'PDAM', 'Dalam Sistem', + 'Luar Sistem', 'Lap Pimpinan', 'Chat', 'Google Sheets', 'TPA TPT', 'Approval Pejabat', + 'Undangan', 'Rekap Pembayaran', 'Lap Rekap Data Pembayaran', 'Lap PBG (PTSP)'], 'operator' => ['Dashboard', 'Data', 'Laporan'] ]; // Define permission levels $superadminPermissions = ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true]; - $adminPermissions = ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true]; + $userPermissions = ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false]; $operatorPermissions = ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false]; // Assign menus to roles @@ -54,13 +59,19 @@ class UsersRoleMenuSeeder extends Seeder $role->menus()->sync( collect($menuNames)->mapWithKeys(fn($menuName) => [ $menus[$menuName]->id => ($roleName === 'superadmin' ? $superadminPermissions : - ($roleName === 'admin' ? $adminPermissions : $operatorPermissions)) + ($roleName === 'operator' ? $operatorPermissions : $userPermissions)) ])->toArray() ); } } // Attach User to role super admin - User::findOrFail(1)->roles()->sync([$roles['superadmin']->id]); + $accountSuperadmin = User::where('email', 'superadmin@sibedas.com')->first(); + $accountUser = User::where('email', 'user@sibedas.com')->first(); + $accountDefault = User::where('email','user@demo.com')->first(); + $accountSuperadmin->roles()->sync([$roles['superadmin']->id]); + $accountUser->roles()->sync([$roles['user']->id]); + $accountDefault->roles()->sync([$roles['user']->id]); + // User::findOrFail(1)->roles()->sync([$roles['superadmin']->id]); } }