*/ class ProviderDisabled implements IEventListener { public function __construct( private IRegistry $registry, private IJobList $jobList, ) { } public function handle(Event $event): void { if (!($event instanceof TwoFactorProviderForUserUnregistered)) { return; } $providers = $this->registry->getProviderStates($event->getUser()); // Loop over all providers. If all are disabled we remove the job $state = array_reduce($providers, function (bool $carry, bool $enabled) { return $carry || $enabled; }, false); if ($state === false) { $this->jobList->remove(RememberBackupCodesJob::class, ['uid' => $event->getUser()->getUID()]); } } }