36 lines
952 B
PHP
36 lines
952 B
PHP
<?php
|
|
|
|
namespace App\Livewire\Auth;
|
|
|
|
use App\Models\AuditEvent;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Livewire\Attributes\Layout;
|
|
use Livewire\Component;
|
|
|
|
#[Layout('layouts.auth')]
|
|
class RecoveryCodes extends Component
|
|
{
|
|
/** Regenerate the current user's backup codes (invalidates the old set). */
|
|
public function regenerate(): void
|
|
{
|
|
Auth::user()->replaceRecoveryCodes();
|
|
|
|
AuditEvent::create([
|
|
'user_id' => Auth::id(),
|
|
'actor' => Auth::user()->name ?? 'system',
|
|
'action' => 'two_factor.recovery_regenerate',
|
|
'target' => Auth::user()->email,
|
|
'ip' => request()->ip(),
|
|
]);
|
|
|
|
$this->dispatch('notify', message: __('auth.recovery_regenerated'));
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.auth.recovery-codes', [
|
|
'codes' => Auth::user()->recoveryCodes(),
|
|
])->title(__('auth.title_recovery'));
|
|
}
|
|
}
|