Example #1
0
 /**
  * @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);
 }