*/ class StateChangeActivity implements IEventListener { public function __construct( private ActivityManager $activityManager, ) { } public function handle(Event $event): void { if ($event instanceof StateChanged) { if ($event instanceof DisabledByAdmin) { $subject = 'totp_disabled_by_admin'; } else { $subject = $event->isEnabled() ? 'totp_enabled_subject' : 'totp_disabled_subject'; } $user = $event->getUser(); $activity = $this->activityManager->generateEvent(); $activity->setApp('twofactor_totp') ->setType('security') ->setAuthor($user->getUID()) ->setAffectedUser($user->getUID()) ->setSubject($subject); $this->activityManager->publish($activity); } } }