26 lines
1.0 KiB
PHP
26 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Core\Auth\Events;
|
|
|
|
use Illuminate\Contracts\Auth\Authenticatable;
|
|
use Lunar\Base\LunarUser;
|
|
|
|
/**
|
|
* Dispatched by UserOtpService::validate() on every successful OTP login, not just
|
|
* a first-time one. Modules\Core\Privacy listens on this to auto-cancel a pending
|
|
* DataErasureRequest — logging back in during the grace period is the "I changed
|
|
* my mind" action (see Modules\Core\Privacy\Listeners\CancelErasureOnLoginListener),
|
|
* which needs $user->customers to resolve any pending request. Typed as
|
|
* Authenticatable&LunarUser rather than plain Authenticatable (unlike the sibling
|
|
* UserCreated event) specifically because that listener depends on it — every real
|
|
* User in this codebase implements LunarUser (see docs/lunar.md "LunarUser trait"),
|
|
* and User is the only Authenticatable entity in this project (Customer is not —
|
|
* see docs/modules.md "Customer/User Pairing").
|
|
*/
|
|
class UserAuthenticated
|
|
{
|
|
public function __construct(
|
|
public readonly Authenticatable&LunarUser $user,
|
|
) {}
|
|
}
|