From 326799bf8508e49cb6871859f11d2e3cb1ae1f43 Mon Sep 17 00:00:00 2001 From: LailaWulandarii Date: Thu, 29 Jan 2026 15:10:56 +0700 Subject: [PATCH] refactor: streamline profile update and password update methods with request validation --- .../Controllers/Admin/ProfilController.php | 63 +++---------------- 1 file changed, 8 insertions(+), 55 deletions(-) diff --git a/app/Http/Controllers/Admin/ProfilController.php b/app/Http/Controllers/Admin/ProfilController.php index 09dcda1..7b68d44 100644 --- a/app/Http/Controllers/Admin/ProfilController.php +++ b/app/Http/Controllers/Admin/ProfilController.php @@ -3,11 +3,11 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; -use Illuminate\Support\Facades\Validator; // <--- WAJIB ADA INI use App\Models\User; +use Illuminate\Support\Facades\Auth; +use App\Http\Requests\Admin\ProfilRequest; +use App\Http\Requests\Admin\PasswordRequest; class ProfilController extends Controller { @@ -17,63 +17,16 @@ public function index() return view('admin.profil', compact('user')); } - // 1. UPDATE INFO DASAR (Tas Error: 'updateProfil') - public function update(Request $request) + public function update(ProfilRequest $request) { - $user = User::find(Auth::id()); - - // Aturan Validasi - $validator = Validator::make($request->all(), [ - 'nama' => 'required|string|max:100', - // Pastikan ignore ID user yang benar (id_user atau id) - 'username' => 'required|string|alpha_num|max:50|unique:users,username,' . $user->id_user . ',id_user', - 'email' => 'required|email|max:255|unique:users,email,' . $user->id_user . ',id_user', - 'no_wa' => 'nullable|numeric', - 'alamat' => 'nullable|string|max:255', - ], [ - 'required' => 'Kolom :attribute wajib diisi.', - 'unique' => ':attribute sudah digunakan.', - 'numeric' => ':attribute harus berupa angka.', - ], [ - 'nama' => 'Nama Lengkap', - 'no_wa' => 'Nomor WA' - ]); - - // CEK ERROR KHUSUS TAS 'updateProfil' - if ($validator->fails()) { - // Kita lempar error ke tas 'updateProfil' - return back()->withErrors($validator, 'updateProfil')->withInput(); - } - - // Simpan Data - $user->nama = $request->nama; - $user->username = $request->username; - $user->email = $request->email; - $user->no_wa = $request->no_wa; - $user->alamat = $request->alamat; - $user->save(); + /** @var \App\Models\User $user */ + $user = $request->user(); + $user->update($request->validated()); return back()->with('success', 'Profil berhasil diperbarui!'); } - - // 2. UPDATE PASSWORD (Tas Error: 'updatePassword') - public function updatePassword(Request $request) + public function updatePassword(PasswordRequest $request) { - // Aturan Validasi - $validator = Validator::make($request->all(), [ - 'password' => 'required|min:8|confirmed', // confirmed cek field password_confirmation - ], [ - 'required' => 'Kata sandi baru wajib diisi.', - 'min' => 'Kata sandi minimal :min karakter.', - 'confirmed' => 'Konfirmasi kata sandi tidak cocok.', - ]); - - if ($validator->fails()) { - // Tambahkan ->withInput() - return back()->withErrors($validator, 'updatePassword')->withInput(); - } - - // Simpan Password $user = User::find(Auth::id()); $user->password = Hash::make($request->password); $user->save();