ProfileController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Http\Controllers\Settings;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Settings\ProfileUpdateRequest;
  5. use Illuminate\Contracts\Auth\MustVerifyEmail;
  6. use Illuminate\Http\RedirectResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Inertia\Inertia;
  10. use Inertia\Response;
  11. class ProfileController extends Controller
  12. {
  13. /**
  14. * Show the user's profile settings page.
  15. */
  16. public function edit(Request $request): Response
  17. {
  18. return Inertia::render('settings/ProfilePage', [
  19. 'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail,
  20. 'status' => $request->session()->get('status'),
  21. ]);
  22. }
  23. /**
  24. * Update the user's profile settings.
  25. */
  26. public function update(ProfileUpdateRequest $request): RedirectResponse
  27. {
  28. $request->user()->fill($request->validated());
  29. if ($request->user()->isDirty('email')) {
  30. $request->user()->email_verified_at = null;
  31. }
  32. $request->user()->save();
  33. return to_route('profile.edit');
  34. }
  35. /**
  36. * Delete the user's account.
  37. */
  38. public function destroy(Request $request): RedirectResponse
  39. {
  40. $request->validate([
  41. 'password' => ['required', 'current_password'],
  42. ]);
  43. $user = $request->user();
  44. Auth::logout();
  45. $user->delete();
  46. $request->session()->invalidate();
  47. $request->session()->regenerateToken();
  48. return redirect('/');
  49. }
  50. }