|
1 | 1 | <?php |
2 | 2 |
|
3 | | -declare(strict_types=1); |
4 | | - |
5 | 3 | namespace App\Http\Controllers\Settings; |
6 | 4 |
|
7 | 5 | use App\Http\Controllers\Controller; |
8 | | -use App\Models\User; |
9 | 6 | use Illuminate\Http\Request; |
10 | 7 | use Inertia\Inertia; |
11 | 8 | use Inertia\Response; |
12 | 9 |
|
13 | 10 | class TwoFactorAuthenticationController extends Controller |
14 | 11 | { |
| 12 | + /** |
| 13 | + * Show the user's two-factor authentication settings page. |
| 14 | + */ |
15 | 15 | public function show(Request $request): Response |
16 | 16 | { |
17 | 17 | $user = $request->user(); |
18 | | - $confirmed = ! is_null($user->two_factor_confirmed_at); |
19 | | - $hasTwoFactorSecret = ! is_null($user->two_factor_secret); |
| 18 | + |
| 19 | + $confirmed = filled($user->two_factor_confirmed_at); |
| 20 | + $hasSecret = filled($user->two_factor_secret); |
| 21 | + $showSetup = ! $confirmed && $hasSecret; |
| 22 | + |
| 23 | + $recoveryCodes = $hasSecret && filled($user->two_factor_recovery_codes) |
| 24 | + ? (json_decode(decrypt($user->two_factor_recovery_codes), true) ?: []) |
| 25 | + : []; |
20 | 26 |
|
21 | 27 | return Inertia::render('settings/TwoFactor', [ |
22 | 28 | 'confirmed' => $confirmed, |
23 | | - 'recoveryCodes' => $hasTwoFactorSecret ? json_decode(decrypt($user->two_factor_recovery_codes)) : [], |
24 | | - 'qrCodeSvg' => !$confirmed && $hasTwoFactorSecret ? $user->twoFactorQrCodeSvg() : null, |
25 | | - 'secretKey' => !$confirmed && $hasTwoFactorSecret ? decrypt($user->two_factor_secret) : null, |
| 29 | + 'recoveryCodes' => $recoveryCodes, |
| 30 | + 'qrCodeSvg' => $showSetup ? $user->twoFactorQrCodeSvg() : null, |
| 31 | + 'secretKey' => $showSetup ? decrypt($user->two_factor_secret) : null, |
26 | 32 | ]); |
27 | 33 | } |
28 | 34 | } |
0 commit comments