circleRequest = $circleRequest; $this->federatedUserService = $federatedUserService; $this->federatedEventService = $federatedEventService; $this->circleService = $circleService; } /** * @throws ContactAddressBookNotFoundException * @throws ContactFormatException * @throws FederatedUserNotFoundException * @throws ContactNotFoundException * @throws SingleCircleNotFoundException * @throws RequestBuilderException * @throws InvalidIdException * @throws FederatedUserException * @throws InitiatorNotFoundException */ public function userAccountUpdated(IUser $user) { $federatedUser = $this->federatedUserService->getLocalFederatedUser($user->getUID()); $this->circleRequest->updateDisplayName($federatedUser->getSingleId(), $user->getDisplayName()); $this->federatedUserService->setCurrentUser($federatedUser); $probe = new CircleProbe(); $probe->includeSystemCircles() ->mustBeMember() ->canBeRequestingMembership(); $circles = $this->circleService->getCircles($probe); foreach ($circles as $circle) { // we are only interested in direct membership if ($circle->getInitiator()->getSingleId() !== $federatedUser->getSingleId()) { continue; } $event = new FederatedEvent(MemberDisplayName::class); $event->setCircle($circle); $event->getParams()->s('displayName', $user->getDisplayName()); try { $this->federatedEventService->newEvent($event); } catch (Exception $e) { } } } }