diff --git a/app/Http/Controllers/admin/ProfilController.php b/app/Http/Controllers/admin/ProfilController.php new file mode 100644 index 0000000..09dcda1 --- /dev/null +++ b/app/Http/Controllers/admin/ProfilController.php @@ -0,0 +1,83 @@ +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!'); + } + + // 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->password = Hash::make($request->password); + $user->save(); + + return back()->with('success', 'Kata sandi berhasil diubah!'); + } +} diff --git a/resources/views/admin/profil.blade.php b/resources/views/admin/profil.blade.php index 4f28ebf..e6e0cc1 100644 --- a/resources/views/admin/profil.blade.php +++ b/resources/views/admin/profil.blade.php @@ -2,74 +2,116 @@ @section('title', 'Profil') @section('content') + @if (session('success')) + + @endif +
+

Edit Profil

-
+ + @csrf + @method('PUT') +
-
+
- + + + @error('nama', 'updateProfil') +
{{ $message }}
+ @enderror
- + + + @error('username', 'updateProfil') +
{{ $message }}
+ @enderror
-
+ +
- + + + @error('no_wa', 'updateProfil') +
{{ $message }}
+ @enderror
+
- + + + @error('email', 'updateProfil') +
{{ $message }}
+ @enderror
- -
- -
+
+
- + + + @error('alamat', 'updateProfil') +
{{ $message }}
+ @enderror
- - @@ -79,39 +121,59 @@
+

Ubah Kata Sandi

- + + @csrf + @method('PUT') +
-
- -
- -
+
+ + + + +
+ + @error('password', 'updatePassword') +
{{ $message }}
+ @enderror
-
- -
- -
+
+ + + + +
@@ -119,25 +181,26 @@
- -
-
+
+