/** * @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); }
public function testFiltersWithoutWhere() { $baseCommand = new AdHocCommand("SELECT *\n\t\t\t\t\t\tFROM users\n\t\t\t\t\t\tGROUP BY 1, 2 ORDER BY 3, 4"); $filter = new SqlFilterLike("fname", 'firstname'); $filter->_And(new SqlFilterEquals("lname", 'last')); $filterCommand = new FilterCommand($baseCommand, $filter); $constraint = $this->stringContains("WHERE fname LIKE @fname AND ( lname = @lname ) GROUP BY 1, 2 ORDER BY 3, 4"); $query = $filterCommand->GetQuery(); $this->assertThat($query, $constraint, $query); }