refactor(usermanagement): enhance UsersSeeder by removing RolesSeeder dependency and improving user creation logic

This commit is contained in:
Sholahuddin Al Ayubi
2025-11-10 17:44:41 +07:00
parent a4aab54735
commit 7313f64a70
2 changed files with 117 additions and 28 deletions

View File

@@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
return new class extends Migration {
/**
* Run the migrations.
*/
@@ -46,8 +45,12 @@ return new class extends Migration
*/
public function down(): void
{
Schema::dropIfExists('users');
Schema::dropIfExists('password_reset_tokens');
Schema::disableForeignKeyConstraints();
Schema::dropIfExists('sessions');
Schema::dropIfExists('password_reset_tokens');
Schema::dropIfExists('users');
Schema::enableForeignKeyConstraints();
}
};

View File

@@ -5,38 +5,124 @@ namespace Modules\Usermanagement\Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Modules\Usermanagement\Models\User;
use Modules\Usermanagement\Database\Seeders\RolesSeeder;
use Spatie\Permission\Models\Role;
use Illuminate\Support\Facades\DB;
class UsersSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$roleSeeder = new RolesSeeder();
$rolesData = $roleSeeder->data();
$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
];
foreach ($rolesData as $roleData) {
if ($roleData['name'] === 'administrator') {
$user = User::firstOrCreate(
['email' => $roleData['name'] . '@ag.co.id'],
[
'name' => $roleData['name'],
'password' => Hash::make('bagbag'),
'branch_id' => 1,
'nik' => '000000',
'email_verified_at' => now(),
]
);
$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
];
$role = \Spatie\Permission\Models\Role::firstOrCreate(
['name' => $roleData['name']],
['guard_name' => 'web']
);
$kpno = 6;
$user->assignRole($role);
}
$createUser = function ($roleName, $branchId) {
$user = User::firstOrCreate(
['email' => $roleName . $branchId . '@ag.co.id'],
[
'name' => ucfirst($roleName) . ' ' . $branchId,
'password' => Hash::make('bagbag'),
'branch_id' => $branchId,
'nik' => rand(100000, 999999),
'email_verified_at' => now(),
]
);
$role = Role::firstOrCreate(['name' => $roleName], ['guard_name' => 'web']);
$user->assignRole($role);
};
foreach ($branchLuar as $branchId) {
$createUser('legal', $branchId);
}
$createUser('legal', $kpno);
$createUser('spvlegal', $kpno);
foreach (array_merge($branchLuar, $branchDalam) as $branchId) {
$createUser('cabang', $branchId);
}
foreach ($branchLuar as $branchId) {
$createUser('admindokumen', $branchId);
}
$createUser('admindokumen', $kpno);
$createUser('adminkredit', $kpno);
foreach ($branchLuar as $branchId) {
$createUser('auditor', $branchId);
}
$createUser('auditor', $kpno);
$createUser('soadmindokumen', $kpno);
}
}