*/ class AppPasswordCreatedActivityListener implements IEventListener { public function __construct( private IActivityManager $activityManager, private IUserSession $userSession, private LoggerInterface $logger, ) { } public function handle(Event $event): void { if (!($event instanceof AppPasswordCreatedEvent)) { return; } $activity = $this->activityManager->generateEvent(); $activity->setApp('settings') ->setType('security') ->setAffectedUser($event->getToken()->getUID()) ->setAuthor($this->userSession->getUser() ? $this->userSession->getUser()->getUID() : '') ->setSubject(Provider::APP_TOKEN_CREATED, ['name' => $event->getToken()->getName()]) ->setObject('app_token', $event->getToken()->getId()); try { $this->activityManager->publish($activity); } catch (BadMethodCallException $e) { $this->logger->warning('Could not publish activity: ' . $e->getMessage(), [ 'exception' => $e ]); } } }