public static function setUpBeforeClass()
 {
     parent::setUpBeforeClass();
     SecurityTestHelper::createSuperAdmin();
     $user = UserTestHelper::createBasicUser('steve');
     $user->primaryEmail->emailAddress = '*****@*****.**';
     $user->setRight('ContactsModule', ContactsModule::RIGHT_ACCESS_CONTACTS);
     assert($user->save());
     // Not Coding Standard
     $contact1 = ContactTestHelper::createContactByNameForOwner('peter', $user);
     $contact1->primaryEmail->emailAddress = '*****@*****.**';
     $contact1->secondaryEmail->emailAddress = '*****@*****.**';
     assert($contact1->save());
     // Not Coding Standard
     $contactsOrLeads = ContactSearch::getContactsByAnyEmailAddress('*****@*****.**', null, null);
     $contact2 = ContactTestHelper::createContactByNameForOwner('jim', $user);
     $contact2->primaryEmail->emailAddress = '*****@*****.**';
     assert($contact2->save());
     // Not Coding Standard
     $nonExistingUserEmail = '*****@*****.**';
     self::$user = $user;
     self::$contact1 = $contact1;
     self::$contact2 = $contact2;
     self::$nonExistingUserEmail = $nonExistingUserEmail;
     Yii::app()->imap->imapUsername = '******';
 }
 /**
  * Gets matched models
  * @param $value
  * @param null|int $pageSize
  * @return array
  */
 protected function getMatchedModels($value, $pageSize)
 {
     $matchedModels = array();
     $penultimateModelClassName = $this->penultimateModelClassName;
     if ($penultimateModelClassName == 'Account') {
         $matchedModels = AccountSearch::getAccountsByAnyEmailAddress($value, $pageSize);
     } elseif ($penultimateModelClassName == 'Contact') {
         $matchedModels = ContactSearch::getContactsByAnyEmailAddress($value, $pageSize);
     }
     return $matchedModels;
 }
Exemplo n.º 3
0
 /**
  * Get Contact or Account or User, based on email address
  * @param string $emailAddress
  * @param boolean $userCanAccessContacts
  * @param boolean $userCanAccessLeads
  * @param boolean $userCanAccessAccounts
  * @return Contact || Account || User || NULL
  */
 public static function resolvePersonOrAccountByEmailAddress($emailAddress, $userCanAccessContacts = false, $userCanAccessLeads = false, $userCanAccessAccounts = false)
 {
     assert('is_string($emailAddress)');
     assert('is_bool($userCanAccessContacts)');
     assert('is_bool($userCanAccessLeads)');
     assert('is_bool($userCanAccessAccounts)');
     $personOrAccount = null;
     $contactsOrLeads = array();
     if ($userCanAccessContacts || $userCanAccessLeads) {
         $stateMetadataAdapterClassName = LeadsStateMetadataAdapter::resolveStateMetadataAdapterClassNameByAccess($userCanAccessContacts, $userCanAccessLeads);
         $contactsOrLeads = ContactSearch::getContactsByAnyEmailAddress($emailAddress, null, $stateMetadataAdapterClassName);
     }
     if (!empty($contactsOrLeads)) {
         $personOrAccount = $contactsOrLeads[0];
     } else {
         $accounts = array();
         // Check if email belongs to account
         if ($userCanAccessAccounts) {
             $accounts = AccountSearch::getAccountsByAnyEmailAddress($emailAddress);
         }
         if (count($accounts)) {
             $personOrAccount = $accounts[0];
         } else {
             $users = UserSearch::getUsersByEmailAddress($emailAddress);
             if (count($users)) {
                 $personOrAccount = $users[0];
             }
         }
     }
     return $personOrAccount;
 }
Exemplo n.º 4
0
 public function testGetContactsByAnyEmailAddress()
 {
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     $contactStates = ContactState::getAll();
     $this->assertTrue(count($contactStates) > 1);
     $firstContactState = $contactStates[0];
     $contact = new Contact();
     $contact->title->value = 'Mr.';
     $contact->firstName = 'test';
     $contact->lastName = 'contact';
     $contact->owner = $super;
     $contact->state = $firstContactState;
     $contact->primaryEmail = new Email();
     $contact->primaryEmail->emailAddress = '*****@*****.**';
     $contact->secondaryEmail = new Email();
     $contact->secondaryEmail->emailAddress = '*****@*****.**';
     $this->assertTrue($contact->save());
     $data = ContactSearch::getContactsByAnyEmailAddress('*****@*****.**');
     $this->assertEquals(1, count($data));
 }