Exemplo n.º 1
0
 public function testUserGetterAndSetter()
 {
     $origin = new UserEmailOrigin();
     $this->assertNull($origin->getUser());
     $origin->setUser('test');
     $this->assertEquals('test', $origin->getUser());
 }
Exemplo n.º 2
0
 /**
  * Set SmtpTransport instance or create a new if default mailer transport is not smtp
  *
  * @param UserEmailOrigin $userEmailOrigin
  */
 public function prepareSmtpTransport($userEmailOrigin)
 {
     if (!$this->smtpTransport) {
         $username = $userEmailOrigin->getUser();
         /** @var Mcrypt $encoder */
         $encoder = $this->container->get('oro_security.encoder.mcrypt');
         $password = $encoder->decryptData($userEmailOrigin->getPassword());
         $host = $userEmailOrigin->getSmtpHost();
         $port = $userEmailOrigin->getSmtpPort();
         $security = $userEmailOrigin->getSmtpEncryption();
         $accessToken = $this->imapEmailGoogleOauth2Manager->getAccessTokenWithCheckingExpiration($userEmailOrigin);
         $transport = $this->getTransport();
         if ($transport instanceof \Swift_SmtpTransport || $transport instanceof \Swift_Transport_EsmtpTransport) {
             $transport->setHost($host);
             $transport->setPort($port);
             $transport->setEncryption($security);
         } else {
             $transport = \Swift_SmtpTransport::newInstance($host, $port, $security);
         }
         $transport->setUsername($username);
         if ($accessToken === null) {
             $transport->setPassword($password);
         } else {
             $transport->setAuthMode('XOAUTH2');
             $transport->setPassword($accessToken);
         }
         $this->smtpTransport = $transport;
     }
 }
Exemplo n.º 3
0
 /**
  * Set SmtpTransport instance or create a new if default mailer transport is not smtp
  *
  * @param UserEmailOrigin $userEmailOrigin
  */
 public function prepareSmtpTransport($userEmailOrigin)
 {
     if (!$this->smtpTransport) {
         $username = $userEmailOrigin->getUser();
         /** @var Mcrypt $encoder */
         $encoder = $this->container->get('oro_security.encoder.mcrypt');
         $password = $encoder->decryptData($userEmailOrigin->getPassword());
         $host = $userEmailOrigin->getSmtpHost();
         $port = $userEmailOrigin->getSmtpPort();
         $security = $userEmailOrigin->getSmtpEncryption();
         $transport = $this->getTransport();
         if ($transport instanceof \Swift_SmtpTransport || $transport instanceof \Swift_Transport_EsmtpTransport) {
             $transport->setHost($host);
             $transport->setPort($port);
             $transport->setEncryption($security);
         } else {
             $transport = \Swift_SmtpTransport::newInstance($host, $port, $security);
         }
         $transport->setUsername($username);
         $transport->setPassword($password);
         $this->smtpTransport = $transport;
     }
 }
Exemplo n.º 4
0
 /**
  * @param UserEmailOrigin|null $origin
  *
  * @return $this
  */
 public function setOrigin($origin = null)
 {
     $currentOrigin = $this->getOrigin();
     if ($currentOrigin && ($origin === null || $origin->getUser() === null || $currentOrigin->getId() !== $origin->getId())) {
         $currentOrigin->setActive(false);
         $this->origin = null;
     }
     if ($origin !== null && $origin->getUser() !== null) {
         $this->origin = $origin;
     }
     return $this;
 }
Exemplo n.º 5
0
 /**
  * Creates a processor is used to synchronize emails
  *
  * @param UserEmailOrigin $origin
  * @return ImapEmailSynchronizationProcessor
  */
 protected function createSynchronizationProcessor($origin)
 {
     $config = new ImapConfig($origin->getImapHost(), $origin->getImapPort(), $origin->getImapEncryption(), $origin->getUser(), $this->encryptor->decryptData($origin->getPassword()), $this->imapEmailGoogleOauth2Manager->getAccessTokenWithCheckingExpiration($origin));
     return $this->syncProcessorFactory->create(new ImapEmailManager($this->connectorFactory->createImapConnector($config)), $this->getKnownEmailAddressChecker());
 }
Exemplo n.º 6
0
 /**
  * Modify transport smtp settings
  *
  * @param UserEmailOrigin $userEmailOrigin
  */
 protected function modifySmtpSettings(UserEmailOrigin $userEmailOrigin)
 {
     $transport = $this->mailer->getTransport();
     if ($transport instanceof \Swift_Transport_EsmtpTransport) {
         $transport->setHost($userEmailOrigin->getSmtpHost());
         $transport->setPort($userEmailOrigin->getSmtpPort());
         $transport->setUsername($userEmailOrigin->getUser());
         $transport->setPassword($this->encryptor->decryptData($userEmailOrigin->getPassword()));
         if ($userEmailOrigin->getSmtpEncryption()) {
             $transport->setEncryption($userEmailOrigin->getSmtpEncryption());
         }
     }
 }
Exemplo n.º 7
0
 /**
  * Set IMAP configuration
  *
  * @param UserEmailOrigin $imapConfiguration
  *
  * @return User
  */
 public function setImapConfiguration($imapConfiguration = null)
 {
     $currentImapConfiguration = $this->getImapConfiguration();
     if ($currentImapConfiguration && (null === $imapConfiguration || $currentImapConfiguration->getId() !== $imapConfiguration->getId())) {
         // deactivate current IMAP configuration and remove a reference to it
         $currentImapConfiguration->setActive(false);
         $this->removeEmailOrigin($currentImapConfiguration);
     }
     if (null !== $imapConfiguration && null !== $imapConfiguration->getUser()) {
         $this->addEmailOrigin($imapConfiguration);
     }
     return $this;
 }
Exemplo n.º 8
0
 /**
  * @param UserEmailOrigin $origin
  *
  * @return ImapEmailFolderManager
  */
 protected function createManager(UserEmailOrigin $origin)
 {
     $config = new ImapConfig($origin->getImapHost(), $origin->getImapPort(), $origin->getImapEncryption(), $origin->getUser(), $this->mcrypt->decryptData($origin->getPassword()), $this->imapEmailGoogleOauth2Manager->getAccessTokenWithCheckingExpiration($origin));
     $connector = $this->connectorFactory->createImapConnector($config);
     return new ImapEmailFolderManager($connector, $this->doctrine->getManager(), $origin);
 }
Exemplo n.º 9
0
 /**
  * @param UserEmailOrigin $origin
  *
  * @return ImapEmailFolderManager
  */
 protected function createManager(UserEmailOrigin $origin)
 {
     $config = new ImapConfig($origin->getImapHost(), $origin->getImapPort(), $origin->getImapEncryption(), $origin->getUser(), $this->mcrypt->decryptData($origin->getPassword()));
     $connector = $this->connectorFactory->createImapConnector($config);
     return new ImapEmailFolderManager($connector, $this->doctrine->getManager(), $origin);
 }