mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-29 14:24:46 +02:00
Cache per user and show backup tokens temporarily
This commit is contained in:
parent
ef1a208b95
commit
7657364208
@ -104,6 +104,11 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
|||||||
return [
|
return [
|
||||||
Placeholder::make('2fa-already-enabled')
|
Placeholder::make('2fa-already-enabled')
|
||||||
->label('Two Factor Authentication is currently enabled!'),
|
->label('Two Factor Authentication is currently enabled!'),
|
||||||
|
Placeholder::make('backup-tokens')
|
||||||
|
->hidden(fn () => !cache()->get("users.{$this->getUser()->id}.2fa.tokens"))
|
||||||
|
->helperText(cache()->get("users.{$this->getUser()->id}.2fa.tokens") .
|
||||||
|
' - these will not be shown again!')
|
||||||
|
->label("Backup Tokens:"),
|
||||||
TextInput::make('2fa-disable-code')
|
TextInput::make('2fa-disable-code')
|
||||||
->label('Disable 2FA')
|
->label('Disable 2FA')
|
||||||
->helperText('Enter your current 2FA code to disable Two Factor Authentication'),
|
->helperText('Enter your current 2FA code to disable Two Factor Authentication'),
|
||||||
@ -112,7 +117,7 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
|||||||
$setupService = app(TwoFactorSetupService::class);
|
$setupService = app(TwoFactorSetupService::class);
|
||||||
|
|
||||||
['image_url_data' => $url, 'secret' => $secret] = cache()->remember(
|
['image_url_data' => $url, 'secret' => $secret] = cache()->remember(
|
||||||
'current-two-factor-state',
|
"users.{$this->getUser()->id}.2fa.state",
|
||||||
now()->addMinutes(5), fn () =>
|
now()->addMinutes(5), fn () =>
|
||||||
$setupService->handle($this->getUser())
|
$setupService->handle($this->getUser())
|
||||||
);
|
);
|
||||||
@ -261,7 +266,8 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
|||||||
/** @var ToggleTwoFactorService $service */
|
/** @var ToggleTwoFactorService $service */
|
||||||
$service = resolve(ToggleTwoFactorService::class);
|
$service = resolve(ToggleTwoFactorService::class);
|
||||||
|
|
||||||
$service->handle($record, $token, true);
|
$tokens = $service->handle($record, $token, true);
|
||||||
|
cache()->set("users.$record->id.2fa.tokens", implode("\n", $tokens), now()->addSeconds(15));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($token = $data['2fa-disable-code'] ?? null) {
|
if ($token = $data['2fa-disable-code'] ?? null) {
|
||||||
@ -270,7 +276,7 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
|||||||
|
|
||||||
$service->handle($record, $token, false);
|
$service->handle($record, $token, false);
|
||||||
|
|
||||||
cache()->forget('current-two-factor-state');
|
cache()->forget("users.$record->id.2fa.state");
|
||||||
}
|
}
|
||||||
|
|
||||||
return parent::handleRecordUpdate($record, $data);
|
return parent::handleRecordUpdate($record, $data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user