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