From 79da7df73cde3f6202f887bf8bbc6b3685ba0c19 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 30 Jul 2026 10:34:32 +0700 Subject: [PATCH] feat: refactor EmployeeController and EmployeeService for improved user handling and password reset logic --- .../Admin/HR/EmployeeController.php | 24 ++++++++++--------- app/Models/User.php | 2 -- app/Services/Admin/HR/EmployeeService.php | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/Admin/HR/EmployeeController.php b/app/Http/Controllers/Admin/HR/EmployeeController.php index 8bc18c9..51bc298 100644 --- a/app/Http/Controllers/Admin/HR/EmployeeController.php +++ b/app/Http/Controllers/Admin/HR/EmployeeController.php @@ -37,45 +37,47 @@ public function store(EmployeeRequest $request): RedirectResponse ); } - public function edit(User $employee): Response + public function edit(User $user): Response { + $user->load(['userProfile', 'employee']); + return Inertia::render('admin/hr/employee/edit', [ - 'employee' => $this->service->getById($employee->id), + 'employee' => $user, ]); } - public function update(EmployeeRequest $request, User $employee): RedirectResponse + public function update(EmployeeRequest $request, User $user): RedirectResponse { return $this->handleAction( - fn () => $this->service->update($employee, $request->validated()), + fn () => $this->service->update($user, $request->validated()), 'Pegawai berhasil diperbarui.', 'admin.hr.employees.index' ); } - public function destroy(User $employee): RedirectResponse + public function destroy(User $user): RedirectResponse { return $this->handleAction( - fn () => $this->service->delete($employee), + fn () => $this->service->delete($user), 'Pegawai berhasil dihapus.', 'admin.hr.employees.index' ); } - public function toggleActive(User $employee): RedirectResponse + public function toggleActive(User $user): RedirectResponse { - $this->service->toggleActive($employee); - $status = $employee->fresh()->is_active ? 'diaktifkan' : 'dinonaktifkan'; + $this->service->toggleActive($user); + $status = $user->fresh()->is_active ? 'diaktifkan' : 'dinonaktifkan'; Inertia::flash('toast', ['type' => 'success', 'message' => "Pegawai berhasil {$status}."]); return to_route('admin.hr.employees.index'); } - public function resetPassword(User $employee): RedirectResponse + public function resetPassword(User $user): RedirectResponse { return $this->handleAction( - fn () => $this->service->resetPassword($employee), + fn () => $this->service->resetPassword($user), 'Kata sandi pegawai berhasil direset ke kata sandi default.', 'admin.hr.employees.index' ); diff --git a/app/Models/User.php b/app/Models/User.php index 2e9b298..ef69705 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -20,8 +20,6 @@ class User extends Authenticatable { use HasFactory, HasRoles, Notifiable, SoftDeletes, TwoFactorAuthenticatable; - protected $with = ['userProfile']; - protected function casts(): array { return [ diff --git a/app/Services/Admin/HR/EmployeeService.php b/app/Services/Admin/HR/EmployeeService.php index c6bc0c7..dccb250 100644 --- a/app/Services/Admin/HR/EmployeeService.php +++ b/app/Services/Admin/HR/EmployeeService.php @@ -100,7 +100,7 @@ public function toggleActive(User $user): User public function resetPassword(User $user): User { - $defaultPassword = config('auth.password_default', 'Minimal8@'); + $defaultPassword = config('auth.password_default'); $user->update(['password' => $defaultPassword]); return $user;