refactor: update user migration logic to filter deleted records and adjust role filtering in user table
This commit is contained in:
parent
3908e027ef
commit
15c76645e4
@ -33,7 +33,7 @@ public function handle()
|
|||||||
{
|
{
|
||||||
$this->info('Starting user migration...');
|
$this->info('Starting user migration...');
|
||||||
|
|
||||||
$legacyUsers = DB::connection('mysql_second')->table('users')->get();
|
$legacyUsers = DB::connection('mysql_second')->table('users')->where('deleted_at', null)->get();
|
||||||
|
|
||||||
if ($legacyUsers->isEmpty()) {
|
if ($legacyUsers->isEmpty()) {
|
||||||
$this->warn('No users found in legacy database.');
|
$this->warn('No users found in legacy database.');
|
||||||
@ -42,10 +42,12 @@ public function handle()
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($legacyUsers as $legacy) {
|
foreach ($legacyUsers as $legacy) {
|
||||||
$user = User::where('email', $legacy->email)->first();
|
$existingById = User::where('id', $legacy->id)->first();
|
||||||
|
$existingByEmail = User::where('email', $legacy->email)->first();
|
||||||
|
|
||||||
$roleName = $this->mapRole($legacy->role);
|
$roleName = $this->mapRole($legacy->role);
|
||||||
|
|
||||||
if (! $user) {
|
if (! $existingById && ! $existingByEmail) {
|
||||||
|
|
||||||
$username = $this->generateUniqueUsername($legacy->name, $legacy->email);
|
$username = $this->generateUniqueUsername($legacy->name, $legacy->email);
|
||||||
|
|
||||||
@ -55,9 +57,9 @@ public function handle()
|
|||||||
'email' => $legacy->email,
|
'email' => $legacy->email,
|
||||||
'username' => $username,
|
'username' => $username,
|
||||||
'password' => $legacy->password,
|
'password' => $legacy->password,
|
||||||
'is_active' => $legacy->status == '1'
|
'is_active' => $legacy->status == '2'
|
||||||
? IsActive::ACTIVE->value
|
? IsActive::INACTIVE->value
|
||||||
: IsActive::INACTIVE->value,
|
: IsActive::ACTIVE->value,
|
||||||
'email_verified_at' => now(),
|
'email_verified_at' => now(),
|
||||||
'created_at' => $legacy->created_at ?? now(),
|
'created_at' => $legacy->created_at ?? now(),
|
||||||
'updated_at' => $legacy->updated_at ?? now(),
|
'updated_at' => $legacy->updated_at ?? now(),
|
||||||
@ -65,20 +67,22 @@ public function handle()
|
|||||||
|
|
||||||
$user = User::find($userId);
|
$user = User::find($userId);
|
||||||
|
|
||||||
if ($roleName) {
|
if ($user && $roleName) {
|
||||||
$user->syncRoles([$roleName]);
|
$user->syncRoles([$roleName]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($user && ! $user->settings()->exists()) {
|
if (! $user->settings()->exists()) {
|
||||||
$user->settings()->create([
|
$user->settings()->create([
|
||||||
'notif_style' => NotifStyle::CHEERFUL,
|
'notif_style' => NotifStyle::FORMAL,
|
||||||
'primary_color' => 'blue',
|
'primary_color' => 'blue',
|
||||||
'font' => 'Inter',
|
'font' => 'Inter',
|
||||||
'content_width' => 'full',
|
'content_width' => 'full',
|
||||||
'border_radius' => 'lg',
|
'border_radius' => 'lg',
|
||||||
'top_navigation' => false,
|
'top_navigation' => false,
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->info('User already exists: '.$legacy->email);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,7 @@ public static function configure(Table $table): Table
|
|||||||
SelectFilter::make('roles')
|
SelectFilter::make('roles')
|
||||||
->label('Peran')
|
->label('Peran')
|
||||||
->relationship('roles', 'name', function (Builder $query): Builder {
|
->relationship('roles', 'name', function (Builder $query): Builder {
|
||||||
return $query->whereNotIn('name', [RoleEnum::DEVELOPER, RoleEnum::PERUSAHAAN]);
|
return $query->where('name', '!=', RoleEnum::DEVELOPER->value);
|
||||||
})
|
})
|
||||||
->multiple()
|
->multiple()
|
||||||
->preload()
|
->preload()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user