| <?php |
|
|
| namespace App\Http\Controllers\Settings; |
|
|
| use App\Http\Controllers\Controller; |
| use App\Http\Requests\Settings\ProfileDeleteRequest; |
| use App\Http\Requests\Settings\ProfileUpdateRequest; |
| use Illuminate\Contracts\Auth\MustVerifyEmail; |
| use Illuminate\Http\RedirectResponse; |
| use Illuminate\Http\Request; |
| use Illuminate\Support\Facades\Auth; |
| use Inertia\Inertia; |
| use Inertia\Response; |
|
|
| class ProfileController extends Controller |
| { |
| |
| |
| |
| public function edit(Request $request): Response |
| { |
| return Inertia::render('settings/profile', [ |
| 'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail, |
| 'status' => $request->session()->get('status'), |
| ]); |
| } |
|
|
| |
| |
| |
| 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(); |
|
|
| Inertia::flash('toast', ['type' => 'success', 'message' => __('Profile updated.')]); |
|
|
| return to_route('profile.edit'); |
| } |
|
|
| |
| |
| |
| public function destroy(ProfileDeleteRequest $request): RedirectResponse |
| { |
| $user = $request->user(); |
|
|
| Auth::logout(); |
|
|
| $user->delete(); |
|
|
| $request->session()->invalidate(); |
| $request->session()->regenerateToken(); |
|
|
| return redirect('/'); |
| } |
| } |
|
|