Rename kolab_auth_ldap::search() method because its signature doesn't match rcube_ldap_generic::search() and fails recursive calls in VLV search mode + add return parameter for results count

This commit is contained in:
Thomas Bruederli 2014-05-16 10:34:32 +02:00
parent b415c512f0
commit 115c4c54b7
2 changed files with 7 additions and 5 deletions

View file

@ -215,10 +215,11 @@ class kolab_auth_ldap extends rcube_ldap_generic
* 2 - prefix (abc*) * 2 - prefix (abc*)
* @param array $required List of fields that cannot be empty * @param array $required List of fields that cannot be empty
* @param int $limit Number of records * @param int $limit Number of records
* @param int $count Returns the number of records found
* *
* @return array List or false on error * @return array List or false on error
*/ */
function search($fields, $value, $mode=1, $required = array(), $limit = 0) function dosearch($fields, $value, $mode=1, $required = array(), $limit = 0, &$count = 0)
{ {
if (empty($fields)) { if (empty($fields)) {
return array(); return array();
@ -295,7 +296,8 @@ class kolab_auth_ldap extends rcube_ldap_generic
$attrs = array_values($this->fieldmap); $attrs = array_values($this->fieldmap);
$list = array(); $list = array();
if ($result = parent::search($base_dn, $filter, $scope, $attrs)) { if ($result = $this->search($base_dn, $filter, $scope, $attrs)) {
$count = $result->count();
$i = 0; $i = 0;
foreach ($result as $entry) { foreach ($result as $entry) {
if ($limit && $limit <= $i) { if ($limit && $limit <= $i) {

View file

@ -202,7 +202,7 @@ class kolab_delegation_engine
return array(); return array();
} }
$list = $ldap->search($this->ldap_login_field, $login, 1); $list = $ldap->dosearch($this->ldap_login_field, $login, 1);
if (count($list) == 1) { if (count($list) == 1) {
$dn = key($list); $dn = key($list);
@ -288,7 +288,7 @@ class kolab_delegation_engine
return array(); return array();
} }
$list = $ldap->search($this->ldap_delegate_field, $this->ldap_dn, 1); $list = $ldap->dosearch($this->ldap_delegate_field, $this->ldap_dn, 1);
foreach ($list as $dn => $delegator) { foreach ($list as $dn => $delegator) {
$delegator = $this->parse_ldap_record($delegator, $dn); $delegator = $this->parse_ldap_record($delegator, $dn);
@ -424,7 +424,7 @@ class kolab_delegation_engine
$fields = array_unique(array_filter(array_merge((array)$this->ldap_name_field, (array)$this->ldap_login_field))); $fields = array_unique(array_filter(array_merge((array)$this->ldap_name_field, (array)$this->ldap_login_field)));
$users = array(); $users = array();
$result = $ldap->search($fields, $search, $mode, (array)$this->ldap_login_field, $max); $result = $ldap->dosearch($fields, $search, $mode, (array)$this->ldap_login_field, $max);
foreach ($result as $record) { foreach ($result as $record) {
// skip self // skip self