$request->user() instanceof MustVerifyEmail, 'status' => $request->session()->get('status'), ]); } /** * Update the user's profile settings. */ public function update(ProfileUpdateRequest $request): RedirectResponse { $validated = $request->validated(); // Remove _method from validated data if present unset($validated['_method']); // Remove avatar from validated data if no file is uploaded // This prevents setting avatar to null in the database if (!$request->hasFile('avatar')) { unset($validated['avatar']); } // Handle avatar upload if ($request->hasFile('avatar')) { // Delete old avatar if exists if ($request->user()->avatar && check_file($request->user()->avatar)) { delete_file($request->user()->avatar); } $filenameWithExt = $request->file('avatar')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('avatar')->getClientOriginalExtension(); $fileNameToStore = $filename . '_' . time() . '.' . $extension; $upload = upload_file($request, 'avatar', $fileNameToStore, 'avatars'); if ($upload['status'] == true) { $validated['avatar'] = $upload['url']; } else { return redirect()->back() ->withErrors(['avatar' => $upload['msg']]) ->withInput(); } } $request->user()->fill($validated); if ($request->user()->isDirty('email')) { $request->user()->email_verified_at = null; } $request->user()->save(); return to_route('profile')->with('success', __('Profile updated successfully.')); } /** * Delete the user's account. */ public function destroy(Request $request): RedirectResponse { $request->validate([ 'password' => ['required', 'current_password'], ]); $user = $request->user(); Auth::logout(); $user->delete(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } }