| <?php |
|
|
| namespace App\Http\Controllers\Settings; |
|
|
| use App\Http\Controllers\Controller; |
| use App\Http\Requests\Settings\PasswordUpdateRequest; |
| use App\Http\Requests\Settings\TwoFactorAuthenticationRequest; |
| use Illuminate\Http\RedirectResponse; |
| use Illuminate\Routing\Controllers\HasMiddleware; |
| use Illuminate\Routing\Controllers\Middleware; |
| use Inertia\Inertia; |
| use Inertia\Response; |
| use Laravel\Fortify\Features; |
|
|
| class SecurityController extends Controller implements HasMiddleware |
| { |
| |
| |
| |
| public static function middleware(): array |
| { |
| return Features::canManageTwoFactorAuthentication() |
| && Features::optionEnabled(Features::twoFactorAuthentication(), 'confirmPassword') |
| ? [new Middleware('password.confirm', only: ['edit'])] |
| : []; |
| } |
|
|
| |
| |
| |
| public function edit(TwoFactorAuthenticationRequest $request): Response |
| { |
| $props = [ |
| 'canManageTwoFactor' => Features::canManageTwoFactorAuthentication(), |
| ]; |
|
|
| if (Features::canManageTwoFactorAuthentication()) { |
| $request->ensureStateIsValid(); |
|
|
| $props['twoFactorEnabled'] = $request->user()->hasEnabledTwoFactorAuthentication(); |
| $props['requiresConfirmation'] = Features::optionEnabled(Features::twoFactorAuthentication(), 'confirm'); |
| } |
|
|
| return Inertia::render('settings/security', $props); |
| } |
|
|
| |
| |
| |
| public function update(PasswordUpdateRequest $request): RedirectResponse |
| { |
| $request->user()->update([ |
| 'password' => $request->password, |
| ]); |
|
|
| Inertia::flash('toast', ['type' => 'success', 'message' => __('Password updated.')]); |
|
|
| return back(); |
| } |
| } |
|
|