refactor(usermanagement): simplify UsersSeeder by removing hardcoded branch arrays and enhancing user creation logic
This commit is contained in:
@@ -5,83 +5,48 @@ namespace Modules\Usermanagement\Database\Seeders;
|
|||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Modules\Usermanagement\Models\User;
|
use Modules\Usermanagement\Models\User;
|
||||||
|
use Modules\Usermanagement\Database\Seeders\RolesSeeder;
|
||||||
use Spatie\Permission\Models\Role;
|
use Spatie\Permission\Models\Role;
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
|
|
||||||
class UsersSeeder extends Seeder
|
class UsersSeeder extends Seeder
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
$branchLuar = [
|
$roleSeeder = new RolesSeeder();
|
||||||
24,
|
$rolesData = $roleSeeder->data();
|
||||||
25,
|
|
||||||
29,
|
|
||||||
35,
|
|
||||||
37,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
50,
|
|
||||||
71,
|
|
||||||
74,
|
|
||||||
77,
|
|
||||||
82,
|
|
||||||
84,
|
|
||||||
85,
|
|
||||||
88,
|
|
||||||
90,
|
|
||||||
91,
|
|
||||||
93,
|
|
||||||
97,
|
|
||||||
107,
|
|
||||||
108,
|
|
||||||
111,
|
|
||||||
112,
|
|
||||||
113,
|
|
||||||
114,
|
|
||||||
115
|
|
||||||
];
|
|
||||||
|
|
||||||
$branchDalam = [
|
/**
|
||||||
2,
|
* ==================================================
|
||||||
3,
|
* STEP 0: Pastikan semua roles dari RolesSeeder sudah dibuat di tabel roles
|
||||||
4,
|
* ==================================================
|
||||||
5,
|
*/
|
||||||
6,
|
foreach ($rolesData as $roleData) {
|
||||||
7,
|
Role::firstOrCreate(
|
||||||
8,
|
['name' => $roleData['name']],
|
||||||
9,
|
['guard_name' => 'web']
|
||||||
10,
|
);
|
||||||
11,
|
}
|
||||||
12,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
53,
|
|
||||||
55,
|
|
||||||
58,
|
|
||||||
60,
|
|
||||||
61,
|
|
||||||
66,
|
|
||||||
70,
|
|
||||||
95,
|
|
||||||
96,
|
|
||||||
98,
|
|
||||||
100,
|
|
||||||
105
|
|
||||||
];
|
|
||||||
|
|
||||||
$kpno = 6;
|
/**
|
||||||
|
* ==================================================
|
||||||
|
* Helper function untuk membuat user
|
||||||
|
* ==================================================
|
||||||
|
*/
|
||||||
|
$createUser = function ($roleName, $branchId = null, $includeBranchInEmail = true, $includeBranchInName = true) {
|
||||||
|
$email = $roleName . ($includeBranchInEmail && $branchId ? $branchId : '') . '@ag.co.id';
|
||||||
|
|
||||||
|
$name = ucfirst($roleName);
|
||||||
|
if ($includeBranchInName && $branchId) {
|
||||||
|
$name .= ' ' . $branchId;
|
||||||
|
}
|
||||||
|
|
||||||
$createUser = function ($roleName, $branchId) {
|
|
||||||
$user = User::firstOrCreate(
|
$user = User::firstOrCreate(
|
||||||
['email' => $roleName . $branchId . '@ag.co.id'],
|
['email' => $email],
|
||||||
[
|
[
|
||||||
'name' => ucfirst($roleName) . ' ' . $branchId,
|
'name' => $name,
|
||||||
'password' => Hash::make('bagbag'),
|
'password' => Hash::make('bagbag'),
|
||||||
'branch_id' => $branchId,
|
'branch_id' => $branchId,
|
||||||
'nik' => rand(100000, 999999),
|
'nik' => rand(100000, 999999),
|
||||||
@@ -89,40 +54,64 @@ class UsersSeeder extends Seeder
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$role = Role::firstOrCreate(['name' => $roleName], ['guard_name' => 'web']);
|
$role = Role::where('name', $roleName)->first();
|
||||||
$user->assignRole($role);
|
if ($role) {
|
||||||
|
$user->assignRole($role);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ==================================================
|
||||||
|
* STEP 1: Buat user per role (branch_id = 1)
|
||||||
|
* ==================================================
|
||||||
|
* - Tanpa angka "1" di email
|
||||||
|
* - Tanpa angka "1" di nama
|
||||||
|
*/
|
||||||
|
foreach ($rolesData as $roleData) {
|
||||||
|
$roleName = $roleData['name'];
|
||||||
|
$createUser($roleName, 1, false, false); // tanpa 1 di email & nama
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ==================================================
|
||||||
|
* STEP 2: Jalankan logic lama (user per cabang)
|
||||||
|
* ==================================================
|
||||||
|
*/
|
||||||
|
$branchLuar = [
|
||||||
|
24, 25, 29, 35, 37, 41, 42, 45, 46, 50, 71, 74, 77,
|
||||||
|
82, 84, 85, 88, 90, 91, 93, 97, 107, 108, 111, 112, 113, 114, 115
|
||||||
|
];
|
||||||
|
|
||||||
|
$branchDalam = [
|
||||||
|
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 17, 18, 22,
|
||||||
|
23, 53, 55, 58, 60, 61, 66, 70, 95, 96, 98, 100, 105
|
||||||
|
];
|
||||||
|
|
||||||
|
$kpno = 6;
|
||||||
|
|
||||||
foreach ($branchLuar as $branchId) {
|
foreach ($branchLuar as $branchId) {
|
||||||
$createUser('legal', $branchId);
|
$createUser('legal', $branchId);
|
||||||
}
|
}
|
||||||
$createUser('legal', $kpno);
|
$createUser('legal', $kpno);
|
||||||
|
|
||||||
|
|
||||||
$createUser('spvlegal', $kpno);
|
$createUser('spvlegal', $kpno);
|
||||||
|
|
||||||
|
|
||||||
foreach (array_merge($branchLuar, $branchDalam) as $branchId) {
|
foreach (array_merge($branchLuar, $branchDalam) as $branchId) {
|
||||||
$createUser('cabang', $branchId);
|
$createUser('cabang', $branchId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach ($branchLuar as $branchId) {
|
foreach ($branchLuar as $branchId) {
|
||||||
$createUser('admindokumen', $branchId);
|
$createUser('admindokumen', $branchId);
|
||||||
}
|
}
|
||||||
$createUser('admindokumen', $kpno);
|
$createUser('admindokumen', $kpno);
|
||||||
|
|
||||||
|
|
||||||
$createUser('adminkredit', $kpno);
|
$createUser('adminkredit', $kpno);
|
||||||
|
|
||||||
|
|
||||||
foreach ($branchLuar as $branchId) {
|
foreach ($branchLuar as $branchId) {
|
||||||
$createUser('auditor', $branchId);
|
$createUser('auditor', $branchId);
|
||||||
}
|
}
|
||||||
$createUser('auditor', $kpno);
|
$createUser('auditor', $kpno);
|
||||||
|
|
||||||
|
|
||||||
$createUser('soadmindokumen', $kpno);
|
$createUser('soadmindokumen', $kpno);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user