protected static function getUserResults($partialName, $pageSize)
 {
     $autoCompleteResults = array();
     $users = UserSearch::getUsersByPartialFullName($partialName, $pageSize);
     foreach ($users as $user) {
         $autoCompleteResults[] = array('id' => $user->id, 'value' => strval($user), 'label' => strval($user) . ' (' . $user->username . ')');
     }
     return $autoCompleteResults;
 }
 public function testGetUsersByEmailAddress()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $user = UserTestHelper::createBasicUser('Steve');
     $user->primaryEmail->emailAddress = '*****@*****.**';
     $user->primaryEmail->optOut = 1;
     $user->primaryEmail->isInvalid = 0;
     $this->assertTrue($user->save());
     $users = UserSearch::getUsersByEmailAddress('*****@*****.**');
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
 }
Exemple #3
0
 static function stLogin($userName, $password)
 {
     $password = sha1($password);
     $filters = array("userName" => array($userName));
     $user = UserSearch::stVirtualConstructor(array("filters" => $filters, "limit" => 1))->getResult();
     if (!$user) {
         LogsErrors::stCreate(array("errorCode" => User::ERROR_CODE_USER_NOT_EXISTS, "param" => "userName", "value" => $userName));
         return false;
     }
     if ($user["password"] != $password) {
         LogsErrors::stCreate(array("errorCode" => User::ERROR_CODE_PASSWORD_NOT_MATCH, "param" => "password"));
         return false;
     }
     $token = sha1($password . time());
     if (!HTTPSession::stCreate(array("userName" => $userName, "password" => $password, "token" => $token))) {
         return false;
     }
     return array("token" => $token);
 }
 /**
  * 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;
 }
Exemple #5
0
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/** Permette di cercare il nome di un utente da una parte del nome
    method: POST
    params:
      name : parte del nome da cercare
      num_records : numero massimo di nomi che deve ritornare (limite di 50 per evitare di dare troppe informazioni)
    returns:
      results : array con nomi degli utenti
  */
require_once "__inc__.php";
$response = new RestfulResponse("json");
if (isset($_POST['term'])) {
    $term = Charset::Utf8ToDB($_POST['term']);
    $num_records = @$_POST['num_records'];
    // Validazione
    if (!isset($num_records)) {
        $num_records = 20;
    }
    if ($num_records > 50) {
        $num_records = 50;
    }
    $results = UserSearch::Find($term, $num_records);
    $response->set('results', $results);
    $response->setSuccess(true);
} else {
    $response->setError("Missing term param");
}
$response->send();
 public function testGetUsersByPartialFullNameWithAutoCompleteOptionsAsExcludeRootUsers()
 {
     UserTestHelper::createBasicUser('Root');
     ZurmoRedBean::exec('UPDATE _user SET isrootuser=1 WHERE username="******";');
     // Not Coding Standard
     $users = UserSearch::getUsersByPartialFullName('Root', 5);
     $this->assertEquals(1, count($users));
     $autoCompleteOptions = ArrayUtil::encodeAutoCompleteOptionsArray(array('excludeRootUsers' => true));
     $users = UserSearch::getUsersByPartialFullName('Root', 5, $autoCompleteOptions);
     $this->assertEquals(0, count($users));
 }
 public function Index()
 {
     AssetLoadManager::register('bundleableEditor');
     $t_comm = new ca_commerce_communications();
     $t_user = new ca_users();
     $o_result_context = new ResultContext($this->request, 'ca_commerce_communications', 'basic_search_library');
     $va_options = array();
     $o_db = new Db();
     // filtering options
     foreach (array('created_on' => 'string', 'search' => 'string', 'user_id' => 'int', 'read_status' => 'string') as $vs_f => $vs_type) {
         if (array_key_exists($vs_f, $_REQUEST)) {
             $vm_v = $this->request->getParameter($vs_f, pString);
             $o_result_context->setParameter('caClientCommunicationList_' . $vs_f, $vm_v);
         } else {
             $vm_v = $o_result_context->getParameter('caClientCommunicationList_' . $vs_f);
         }
         switch ($vs_type) {
             case 'int':
                 if (strlen($vm_v)) {
                     $vm_v = (int) $vm_v;
                 }
                 break;
         }
         if ($vs_f == 'read_status') {
             $va_options[$vs_f] = $vm_v;
             switch ($vm_v) {
                 case 'read':
                     $vs_f = 'readOnly';
                     $vm_v = true;
                     break;
                 case 'unread':
                     $vs_f = 'unreadOnly';
                     $vm_v = true;
                     break;
                 default:
                     break;
             }
         }
         if ($vs_f == 'user_id') {
             if (!$this->request->getParameter('client_user_id_autocomplete', pString)) {
                 continue;
             }
             $o_search = new UserSearch();
             $va_labels = caProcessRelationshipLookupLabel($o_search->search("ca_users.user_id:{$vm_v}"), $t_user, array('stripTags' => true));
             if (sizeof($va_labels)) {
                 $va_label = array_pop($va_labels);
                 $va_options['_user_id_display'] = $va_label['label'];
             }
         }
         if ($vs_f != 'search') {
             $t_comm->set($vs_f, $vm_v);
         }
         $va_options[$vs_f] = $vm_v;
     }
     if ($pn_transaction_id = $this->request->getParameter('transaction_id', pInteger)) {
         // if set load messages for this transaction
         $va_options['transaction_id'] = $pn_transaction_id;
     }
     $this->view->setVar('t_communication', $t_comm);
     $this->view->setVar('filter_options', $va_options);
     $this->view->setVar('message_list', $t_comm->getMessages($this->request->getUserID(), $va_options));
     //$o_result_context->setResultList($va_order_ids);
     $o_result_context->setAsLastFind();
     $o_result_context->saveContext();
     $this->render('list_communications_html.php');
 }
 /**
  * Given a partial name or e-mail address, search for all contacts regardless of contact state unless the
  * current user has security restrictions on some states.  If the adapter resolver returns false, then the
  * user does not have access to the Leads or Contacts module.
  * JSON encode the resulting array of contacts.
  */
 public function actionAutoCompleteForMultiSelectAutoComplete($term, $autoCompleteOptions = null)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $users = UserSearch::getUsersByPartialFullName($term, $pageSize, $autoCompleteOptions);
     $autoCompleteResults = array();
     foreach ($users as $user) {
         $autoCompleteResults[] = array('id' => $user->getClassId('Item'), 'name' => strval($user));
     }
     echo CJSON::encode($autoCompleteResults);
 }
 /**
  * Given a partial name or e-mail address, search for all Users, Leads or Contacts
  * JSON encode the resulting array of contacts.
  */
 public function actionAutoCompleteForMultiSelectAutoComplete($term, $autoCompleteOptions = null)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $usersByFullName = UserSearch::getUsersByPartialFullName($term, $pageSize, $autoCompleteOptions);
     $usersByEmailAddress = UserSearch::getUsersByEmailAddress($term, 'contains', true, $autoCompleteOptions, $pageSize);
     $contacts = ContactSearch::getContactsByPartialFullNameOrAnyEmailAddress($term, $pageSize, null, 'contains', $autoCompleteOptions);
     $autoCompleteResults = array();
     foreach ($usersByEmailAddress as $user) {
         if (isset($user->primaryEmail->emailAddress)) {
             $autoCompleteResults[] = array('id' => strval($user->primaryEmail), 'name' => strval($user) . ' (' . $user->primaryEmail . ')');
         }
     }
     foreach ($usersByFullName as $user) {
         if (isset($user->primaryEmail->emailAddress)) {
             $autoCompleteResults[] = array('id' => strval($user->primaryEmail), 'name' => strval($user) . ' (' . $user->primaryEmail . ')');
         }
     }
     foreach ($contacts as $contact) {
         if (isset($contact->primaryEmail->emailAddress)) {
             $autoCompleteResults[] = array('id' => strval($contact->primaryEmail), 'name' => strval($contact) . ' (' . $contact->primaryEmail . ')');
         }
     }
     $emailValidator = new CEmailValidator();
     if (count($autoCompleteResults) == 0 && $emailValidator->validateValue($term)) {
         $autoCompleteResults[] = array('id' => $term, 'name' => $term);
     }
     echo CJSON::encode($autoCompleteResults);
 }
 /**
  * Get users by emails
  * @throws ApiException
  */
 public function actionSearchUsersByEmails()
 {
     $params = Yii::app()->apiRequest->getParams();
     if (!isset($params['data'])) {
         $message = Zurmo::t('ZurmoModule', 'Please provide data.');
         throw new ApiException($message);
     }
     if (!isset($params['data']['emails']) || !is_array($params['data']['emails']) || empty($params['data']['emails'])) {
         $message = Zurmo::t('ZurmoModule', 'Emails parameters must exist, must be an array and must contain at least one email address.');
         throw new ApiException($message);
     }
     $data = array();
     $data['users'] = array();
     try {
         foreach ($params['data']['emails'] as $email) {
             $usersByEmail = UserSearch::getUsersByEmailAddress($email);
             if (!empty($usersByEmail) && count($usersByEmail) == 1) {
                 $user = array();
                 $user['id'] = $usersByEmail[0]->id;
                 $user['firstName'] = $usersByEmail[0]->firstName;
                 $user['lastName'] = $usersByEmail[0]->lastName;
                 $user['username'] = $usersByEmail[0]->username;
                 if ($usersByEmail[0]->primaryEmail->emailAddress != null) {
                     $user['email'] = $usersByEmail[0]->primaryEmail->emailAddress;
                 }
                 $data['users'][] = $user;
             }
         }
         $result = new ApiResult(ApiResponse::STATUS_SUCCESS, $data, null, null);
     } catch (Exception $e) {
         $message = $e->getMessage();
         throw new ApiException($message);
     }
     Yii::app()->apiHelper->sendResponse($result);
 }
 /**
  * Given a partial name or e-mail address, search for all contacts or users regardless of contact state unless
  * the current user has security restrictions on some states. If the adapter resolver returns false, then the
  * user does not have access to the Leads or Contacts module.
  * JSON encode the resulting array of contacts.
  */
 public function actionAutoCompleteAllContactsOrUsersForMultiSelectAutoComplete($term, $autoCompleteOptions = null)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $adapterName = ContactsUtil::resolveContactStateAdapterByModulesUserHasAccessTo('LeadsModule', 'ContactsModule', Yii::app()->user->userModel);
     if ($adapterName === false) {
         $messageView = new AccessFailureView();
         $view = new AccessFailurePageView($messageView);
         echo $view->render();
         Yii::app()->end(0, false);
     }
     $contacts = ContactSearch::getContactsByPartialFullNameOrAnyEmailAddress($term, $pageSize, $adapterName, null, $autoCompleteOptions);
     $autoCompleteResults = array();
     foreach ($contacts as $contact) {
         $autoCompleteResults[] = array('id' => Meeting::CONTACT_ATTENDEE_PREFIX . $contact->id, 'name' => MultipleContactsForMeetingElement::renderHtmlContentLabelFromContactAndKeyword($contact, $term));
     }
     $users = UserSearch::getUsersByPartialFullNameOrAnyEmailAddress($term, $pageSize, null, null, $autoCompleteOptions);
     foreach ($users as $user) {
         $autoCompleteResults[] = array('id' => Meeting::USER_ATTENDEE_PREFIX . $user->id, 'name' => MultipleContactsForMeetingElement::renderHtmlContentLabelFromUserAndKeyword($user, $term));
     }
     echo CJSON::encode($autoCompleteResults);
 }
 public function actionAutoCompleteGroupsAndUsers($term)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $groups = ModelAutoCompleteUtil::getByPartialName('Group', $term, $pageSize);
     $users = UserSearch::getUsersByPartialFullNameOrAnyEmailAddress($term, $pageSize, null);
     $autoCompleteResults = array();
     foreach ($groups as $group) {
         $autoCompleteResults[] = array('id' => PushDashboardUtil::GROUP_PREFIX . $group['id'], 'name' => $group['value']);
     }
     foreach ($users as $user) {
         $autoCompleteResults[] = array('id' => PushDashboardUtil::USER_PREFIX . $user->id, 'name' => MultipleContactsForMeetingElement::renderHtmlContentLabelFromUserAndKeyword($user, $term));
     }
     echo CJSON::encode($autoCompleteResults);
 }
Exemple #13
0
 /**
  * test getUsersByPartialFullName
  */
 public function testGetUsersByPartialFullName()
 {
     $user = UserTestHelper::createBasicUserWithEmailAddress("partialhideuser");
     $user->hideFromSelecting = true;
     $this->assertTrue($user->save());
     unset($user);
     $users = UserSearch::getUsersByPartialFullName("partial", 1);
     $this->assertEquals(0, count($users));
     $user = User::getByUsername('partialhideuser');
     $user->hideFromSelecting = false;
     $this->assertTrue($user->save());
     unset($user);
     $users = UserSearch::getUsersByPartialFullName("partial", 1);
     $this->assertEquals(1, count($users));
 }
Exemple #14
0
//context_system::instance();
$PAGE->set_context($context);
$PAGE->set_url($url);
$PAGE->set_pagelayout('standard');
//Capabilities
//Validates capabilities of the user for him to see the content
//In this case only the admin of the module can access.
if (!has_capability('local/bookingrooms:blocking', $context)) {
    print_error(get_string('INVALID_ACCESS', 'book_room'));
}
//Breadcrumbs
$PAGE->navbar->add(get_string('roomsreserve', 'local_bookingrooms'), 'book.php');
$PAGE->navbar->add(get_string('users', 'local_bookingrooms'));
$PAGE->navbar->add(get_string('blockstudent', 'local_bookingrooms'), 'blocked.php');
//Form to block a student.
$search = new UserSearch(null);
if ($fromform = $search->get_data()) {
    //Blocks the user in the database
    if ($user = $DB->get_record('user', array('username' => $fromform->user))) {
        $record = new stdClass();
        $record->comments = $fromform->comment;
        $record->student_id = $user->id;
        $record->status = 1;
        $record->block_date = date('Y-m-d');
        $record->id_booking = "";
        $DB->insert_record('bookingrppms_blocked', $record);
        $block = true;
    } else {
        print_error("error");
    }
}
Exemple #15
0
 /**
  * @depends testSearchByPartialName
  */
 public function testSearchByPartialNameWithFirstNamePlusPartialLastName()
 {
     $user = User::getByUsername('dick');
     $users = UserSearch::getUsersByPartialFullName('dick', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
     $users = UserSearch::getUsersByPartialFullName('dick ', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
     $users = UserSearch::getUsersByPartialFullName('dick d', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
     $user = User::getByUsername('dick');
     $users = UserSearch::getUsersByPartialFullName('dick di', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
     $users = UserSearch::getUsersByPartialFullName('Dick di', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
     $users = UserSearch::getUsersByPartialFullName('dick Di', 5);
     $this->assertEquals(1, count($users));
     $this->assertEquals($user->id, $users[0]->id);
     $this->assertEquals('dick', $users[0]->username);
     $this->assertEquals('Dick Dickson', $users[0]->getFullName());
 }