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\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
return new class extends Migration return new class extends Migration {
{
/** /**
* Run the migrations. * Run the migrations.
*/ */
@@ -46,8 +45,12 @@ return new class extends Migration
*/ */
public function down(): void public function down(): void
{ {
Schema::dropIfExists('users'); Schema::disableForeignKeyConstraints();
Schema::dropIfExists('password_reset_tokens');
Schema::dropIfExists('sessions'); 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\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 Illuminate\Support\Facades\DB;
class UsersSeeder extends Seeder class UsersSeeder extends Seeder
{ {
/**
* Run the database seeds.
*/
public function run(): void public function run(): void
{ {
$roleSeeder = new RolesSeeder(); $branchLuar = [
$rolesData = $roleSeeder->data(); 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) { $branchDalam = [
if ($roleData['name'] === 'administrator') { 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;
$createUser = function ($roleName, $branchId) {
$user = User::firstOrCreate( $user = User::firstOrCreate(
['email' => $roleData['name'] . '@ag.co.id'], ['email' => $roleName . $branchId . '@ag.co.id'],
[ [
'name' => $roleData['name'], 'name' => ucfirst($roleName) . ' ' . $branchId,
'password' => Hash::make('bagbag'), 'password' => Hash::make('bagbag'),
'branch_id' => 1, 'branch_id' => $branchId,
'nik' => '000000', 'nik' => rand(100000, 999999),
'email_verified_at' => now(), 'email_verified_at' => now(),
] ]
); );
$role = \Spatie\Permission\Models\Role::firstOrCreate( $role = Role::firstOrCreate(['name' => $roleName], ['guard_name' => 'web']);
['name' => $roleData['name']],
['guard_name' => 'web']
);
$user->assignRole($role); $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);
} }
} }