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
|
public function run(): void
|
||||||
{
|
{
|
||||||
User::updateOrCreate(
|
$users = [
|
||||||
['email' => 'user@demo.com'], // Kondisi pencarian
|
|
||||||
[
|
[
|
||||||
'name' => 'Darkone',
|
'email' => 'user@sibedas.com',
|
||||||
|
'name' => 'User',
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
'password' => Hash::make('password'),
|
'password' => Hash::make('password'),
|
||||||
'firstname' => 'John',
|
'firstname' => 'user',
|
||||||
'lastname' => 'Doe',
|
'lastname' => 'user',
|
||||||
'position' => 'crusial',
|
'position' => 'user',
|
||||||
'remember_token' => Str::random(10),
|
'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([
|
$this->call([
|
||||||
RoleSeeder::class,
|
RoleSeeder::class,
|
||||||
|
|||||||
@@ -18,10 +18,6 @@ class RoleSeeder extends Seeder
|
|||||||
"name" => "superadmin",
|
"name" => "superadmin",
|
||||||
"description" => "show all menus for super admins",
|
"description" => "show all menus for super admins",
|
||||||
],
|
],
|
||||||
[
|
|
||||||
"name" => "admin",
|
|
||||||
"description" => "show only necessary menus for admins",
|
|
||||||
],
|
|
||||||
[
|
[
|
||||||
"name" => "operator",
|
"name" => "operator",
|
||||||
"description" => "show only necessary menus for operators",
|
"description" => "show only necessary menus for operators",
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class UsersRoleMenuSeeder extends Seeder
|
|||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
// Fetch roles in a single query
|
// 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
|
// Fetch all menus in a single query and index by name
|
||||||
$menus = Menu::whereIn('name', [
|
$menus = Menu::whereIn('name', [
|
||||||
@@ -38,13 +38,18 @@ class UsersRoleMenuSeeder extends Seeder
|
|||||||
'Luar Sistem', 'Lap Pimpinan', 'Chat', 'Google Sheets', 'TPA TPT', 'Approval Pejabat',
|
'Luar Sistem', 'Lap Pimpinan', 'Chat', 'Google Sheets', 'TPA TPT', 'Approval Pejabat',
|
||||||
'Undangan', 'Rekap Pembayaran', 'Lap Rekap Data Pembayaran', 'Lap PBG (PTSP)'
|
'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']
|
'operator' => ['Dashboard', 'Data', 'Laporan']
|
||||||
];
|
];
|
||||||
|
|
||||||
// Define permission levels
|
// Define permission levels
|
||||||
$superadminPermissions = ["allow_show" => true, "allow_create" => true, "allow_update" => true, "allow_destroy" => true];
|
$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];
|
$operatorPermissions = ["allow_show" => true, "allow_create" => false, "allow_update" => false, "allow_destroy" => false];
|
||||||
|
|
||||||
// Assign menus to roles
|
// Assign menus to roles
|
||||||
@@ -54,13 +59,19 @@ class UsersRoleMenuSeeder extends Seeder
|
|||||||
$role->menus()->sync(
|
$role->menus()->sync(
|
||||||
collect($menuNames)->mapWithKeys(fn($menuName) => [
|
collect($menuNames)->mapWithKeys(fn($menuName) => [
|
||||||
$menus[$menuName]->id => ($roleName === 'superadmin' ? $superadminPermissions :
|
$menus[$menuName]->id => ($roleName === 'superadmin' ? $superadminPermissions :
|
||||||
($roleName === 'admin' ? $adminPermissions : $operatorPermissions))
|
($roleName === 'operator' ? $operatorPermissions : $userPermissions))
|
||||||
])->toArray()
|
])->toArray()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attach User to role super admin
|
// 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