Skip to content

Commit

Permalink
Ldap\Connection: Add proper order support
Browse files Browse the repository at this point in the history
Will now utilize SimpleQuery::compare() to provide support for multiple
order columns.

refs #8826
refs #7693
  • Loading branch information
Johannes Meyer committed May 4, 2015
1 parent 6612e4c commit 7b7a7c9
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions library/Icinga/Protocol/Ldap/Connection.php
Expand Up @@ -304,10 +304,6 @@ protected function runQuery(Query $query, array $fields = null)
return array();
}

foreach ($query->getSortColumns() as $col) {
ldap_sort($this->ds, $results, $col[0]);
}

$count = 0;
$entries = array();
$entry = ldap_first_entry($this->ds, $results);
Expand All @@ -320,6 +316,10 @@ protected function runQuery(Query $query, array $fields = null)
}
} while (($limit === 0 || $limit !== count($entries)) && ($entry = ldap_next_entry($this->ds, $entry)));

if ($query->hasOrder()) {
uasort($entries, array($query, 'compare'));
}

ldap_free_result($results);
return $entries;
}
Expand Down Expand Up @@ -444,7 +444,11 @@ protected function runPagedQuery(Query $query, array $fields = null, $pageSize =
ldap_control_paged_result($this->ds, 0);
}

return $entries; // TODO(7693): Sort entries post-processed
if ($query->hasOrder()) {
uasort($entries, array($query, 'compare'));
}

return $entries;
}

protected function cleanupAttributes($attributes, array $requestedFields)
Expand Down

0 comments on commit 7b7a7c9

Please sign in to comment.