/** * {@inheritdoc} */ public function getOrganization($activityEntity) { /** * @var $activityEntity Email * @var $emailAddressOwner EmailOwnerInterface */ $emailAddressOwner = $activityEntity->getFromEmailAddress()->getOwner(); if ($emailAddressOwner && $emailAddressOwner->getOrganization()) { return $emailAddressOwner->getOrganization(); } /** @var SecurityContextInterface $securityContext */ $securityContext = $this->securityContextLink->getService(); $token = $securityContext->getToken(); if ($token instanceof OrganizationContextTokenInterface) { return $token->getOrganizationContext(); } $processes = $this->mailboxProcessStorage->getProcesses(); foreach ($processes as $process) { $settingsClass = $process->getSettingsEntityFQCN(); $mailboxes = $this->doctrineRegistryLink->getService()->getRepository('OroEmailBundle:Mailbox')->findBySettingsClassAndEmail($settingsClass, $activityEntity); foreach ($mailboxes as $mailbox) { return $mailbox->getOrganization(); } } return null; }