refactor: streamline profile update and password update methods with request validation

This commit is contained in:
LailaWulandarii 2026-01-29 15:10:56 +07:00
parent a047ecca11
commit 326799bf85
1 changed files with 8 additions and 55 deletions

View File

@ -3,11 +3,11 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator; // <--- WAJIB ADA INI
use App\Models\User; 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 class ProfilController extends Controller
{ {
@ -17,63 +17,16 @@ public function index()
return view('admin.profil', compact('user')); return view('admin.profil', compact('user'));
} }
// 1. UPDATE INFO DASAR (Tas Error: 'updateProfil') public function update(ProfilRequest $request)
public function update(Request $request)
{ {
$user = User::find(Auth::id()); /** @var \App\Models\User $user */
$user = $request->user();
// Aturan Validasi $user->update($request->validated());
$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();
return back()->with('success', 'Profil berhasil diperbarui!'); return back()->with('success', 'Profil berhasil diperbarui!');
} }
public function updatePassword(PasswordRequest $request)
// 2. UPDATE PASSWORD (Tas Error: 'updatePassword')
public function updatePassword(Request $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 = User::find(Auth::id());
$user->password = Hash::make($request->password); $user->password = Hash::make($request->password);
$user->save(); $user->save();