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; }
/** * 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; }
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)); }