diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php index 6916409..948bd9d 100644 --- a/app/Http/Controllers/Auth/PasswordController.php +++ b/app/Http/Controllers/Auth/PasswordController.php @@ -2,28 +2,48 @@ namespace App\Http\Controllers\Auth; -use App\Http\Controllers\Controller; -use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Hash; +use Illuminate\Http\RedirectResponse; use Illuminate\Validation\Rules\Password; +use Illuminate\Validation\ValidationException; class PasswordController extends Controller { /** * Update the user's password. */ + // public function update(Request $request): RedirectResponse + // { + // $validated = $request->validateWithBag('updatePassword', [ + // 'current_password' => ['required', 'current_password'], + // 'password' => ['required', Password::defaults(), 'confirmed'], + // ]); + + // $request->user()->update([ + // 'password' => Hash::make($validated['password']), + // ]); + + // return back()->with('status', 'password-updated'); + // } public function update(Request $request): RedirectResponse { - $validated = $request->validateWithBag('updatePassword', [ - 'current_password' => ['required', 'current_password'], - 'password' => ['required', Password::defaults(), 'confirmed'], - ]); + try { + $validated = $request->validateWithBag('updatePassword', [ + 'current_password' => ['required', 'current_password'], + 'password' => ['required', Password::defaults(), 'confirmed'], + ]); - $request->user()->update([ - 'password' => Hash::make($validated['password']), - ]); + $request->user()->update([ + 'password' => Hash::make($validated['password']), + ]); - return back()->with('status', 'password-updated'); + return back()->with('success-password', 'Password berhasil diperbarui.'); + } catch (ValidationException $e) { + return back()->withErrors($e->errors(), 'updatePassword')->with('error-password', 'Gagal memperbarui password. Silakan periksa kembali masukan Anda.'); + } catch (\Exception $e) { + return back()->with('error-password', 'Gagal memperbarui password. Silakan coba lagi.'); + } } } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index c36e0cf..8fb882c 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -82,16 +82,32 @@ class ProfileController extends Controller } //Proses update Profile Informasi + // public function update(ProfileUpdateRequest $request): RedirectResponse + // { + // $request->user()->fill($request->validated()); + + // if ($request->user()->isDirty('email')) { + // $request->user()->email_verified_at = null; + // } + + // $request->user()->save(); + + // return Redirect::back()->with('status', 'profile-updated'); + // } public function update(ProfileUpdateRequest $request): RedirectResponse { - $request->user()->fill($request->validated()); + try { + $request->user()->fill($request->validated()); - if ($request->user()->isDirty('email')) { - $request->user()->email_verified_at = null; - } + if ($request->user()->isDirty('email')) { + $request->user()->email_verified_at = null; + } - $request->user()->save(); + $request->user()->save(); - return Redirect::back()->with('status', 'profile-updated'); + return Redirect::back()->with('success', 'Akun berhasil diupdate.'); + } catch (\Exception $e) { + return Redirect::back()->with('error', 'Gagal mengupdate akun. Silakan coba lagi.'); + } } } diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php index 327ce6f..58b85b9 100644 --- a/app/Http/Requests/ProfileUpdateRequest.php +++ b/app/Http/Requests/ProfileUpdateRequest.php @@ -16,7 +16,7 @@ class ProfileUpdateRequest extends FormRequest public function rules(): array { return [ - 'name' => ['string', 'max:255'], + 'fullname' => ['string', 'max:255'], 'email' => ['email', 'max:255', Rule::unique(User::class)->ignore($this->user()->id)], ]; } diff --git a/resources/views/profil/setting.blade.php b/resources/views/profil/setting.blade.php index 549ffa4..a124c8a 100644 --- a/resources/views/profil/setting.blade.php +++ b/resources/views/profil/setting.blade.php @@ -3,6 +3,17 @@
{{ $errors->first('email') }}
@@ -68,19 +79,10 @@- Tersimpan. -
- @endif -