/** * @param $term string * @return array|AutocompleteUser[] */ private function GetMyUsers($term) { $userSession = ServiceLocator::GetServer()->GetUserSession(); if ($userSession->IsAdmin) { return $this->GetUsers($term); } $userRepo = new UserRepository(); $user = $userRepo->LoadById($userSession->UserId); $groupIds = array(); foreach ($user->GetAdminGroups() as $group) { $groupIds[] = $group->GroupId; } $users = array(); if (!empty($groupIds)) { $userFilter = new SqlFilterLike(ColumnNames::FIRST_NAME, $term); $userFilter->_Or(new SqlFilterLike(ColumnNames::LAST_NAME, $term)); $groupRepo = new GroupRepository(); $results = $groupRepo->GetUsersInGroup($groupIds, null, null, $userFilter)->Results(); /** @var $result UserItemView */ foreach ($results as $result) { // consolidates results by user id if the user is in multiple groups $users[$result->Id] = new AutocompleteUser($result->Id, $result->First, $result->Last, $result->Email, $result->Username); } } return array_values($users); }