refactor: streamline profile update and password update methods with request validation
This commit is contained in:
parent
a047ecca11
commit
326799bf85
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue