add new users on seeder for role user and superadmin
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user