mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-28 16:24:04 +02:00
lib/ldap: Set server side sorting after calling ldap_control_paged_result()
ldap_control_paged_result() seems to override already set server controls. refs #9364
This commit is contained in:
parent
9e11d539fd
commit
fa25ce7f2f
@ -742,14 +742,7 @@ class LdapConnection implements Selectable, Inspectable
|
|||||||
$ds = $this->getConnection();
|
$ds = $this->getConnection();
|
||||||
|
|
||||||
$serverSorting = $this->capabilities->hasOid(LdapCapabilities::LDAP_SERVER_SORT_OID);
|
$serverSorting = $this->capabilities->hasOid(LdapCapabilities::LDAP_SERVER_SORT_OID);
|
||||||
if ($serverSorting && $query->hasOrder()) {
|
if (! $serverSorting && $query->hasOrder()) {
|
||||||
ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array(
|
|
||||||
array(
|
|
||||||
'oid' => LdapCapabilities::LDAP_SERVER_SORT_OID,
|
|
||||||
'value' => $this->encodeSortRules($query->getOrder())
|
|
||||||
)
|
|
||||||
));
|
|
||||||
} elseif ($query->hasOrder()) {
|
|
||||||
foreach ($query->getOrder() as $rule) {
|
foreach ($query->getOrder() as $rule) {
|
||||||
if (! in_array($rule[0], $fields)) {
|
if (! in_array($rule[0], $fields)) {
|
||||||
$fields[] = $rule[0];
|
$fields[] = $rule[0];
|
||||||
@ -765,6 +758,15 @@ class LdapConnection implements Selectable, Inspectable
|
|||||||
// server to return results even if the paged search request cannot be satisfied
|
// server to return results even if the paged search request cannot be satisfied
|
||||||
ldap_control_paged_result($ds, $pageSize, false, $cookie);
|
ldap_control_paged_result($ds, $pageSize, false, $cookie);
|
||||||
|
|
||||||
|
if ($serverSorting) {
|
||||||
|
ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array(
|
||||||
|
array(
|
||||||
|
'oid' => LdapCapabilities::LDAP_SERVER_SORT_OID,
|
||||||
|
'value' => $this->encodeSortRules($query->getOrder())
|
||||||
|
)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
$results = @ldap_search(
|
$results = @ldap_search(
|
||||||
$ds,
|
$ds,
|
||||||
$base,
|
$base,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user