From 605281da9bb4c575f89113c9f6399c2fe6ca9392 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Sat, 27 Oct 2012 12:18:50 +0200 Subject: LDAP: let result processing in Access::search slice the array for not-paginated search. getUsers e.g. does not need to take care of it anymore. adjustments in group_ldap to follow. --- apps/user_ldap/lib/access.php | 11 +++++++++-- apps/user_ldap/user_ldap.php | 14 ++------------ 2 files changed, 11 insertions(+), 14 deletions(-) (limited to 'apps/user_ldap') diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 536a5f8def4..d3439451499 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -579,8 +579,15 @@ abstract class Access { } } } -// die(var_dump($selection)); - return $selection; + $findings = $selection; + } + if(!$this->pagedSearchedSuccessful + || ( + !is_null($limit) + || !is_null($offset) + ) + ) { + $findings = array_slice($findings, intval($offset), $limit); } return $findings; } diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 011c7d55368..916d3f1d46a 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -119,23 +119,13 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { $this->connection->ldapGroupDisplayName.'='.$search )); - \OCP\Util::writeLog('user_ldap', 'getUsers: Get users filter '.$filter, \OCP\Util::DEBUG); - \OCP\Util::writeLog('user_ldap', 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset, \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, \OCP\Util::DEBUG); //do the search and translate results to owncloud names $ldap_users = $this->fetchListOfUsers($filter, array($this->connection->ldapUserDisplayName, 'dn'), $limit, $offset); $ldap_users = $this->ownCloudUserNames($ldap_users); - \OCP\Util::writeLog('user_ldap', 'getUsers: '.count($ldap_users). ' Users found', \OCP\Util::INFO); - - //if bigger, then paged search is not supported - if(!$this->getPagedSearchResultState()) { - \OCP\Util::writeLog('user_ldap', 'getUsers: We got old-style results', \OCP\Util::DEBUG); - //if not supported, a 'normal' search has run automatically, we just need to get our slice of the cake. And we cache the general search, too - $this->connection->writeToCache('getUsers-'.$search, $ldap_users); - $ldap_users = array_slice($ldap_users, $offset, $limit); - } + \OCP\Util::writeLog('user_ldap', 'getUsers: '.count($ldap_users). ' Users found', \OCP\Util::DEBUG); $this->connection->writeToCache($cachekey, $ldap_users); - \OCP\Util::writeLog('user_ldap', 'getUsers: '.count($ldap_users). ' Users returned', \OCP\Util::DEBUG); return $ldap_users; } -- cgit v1.2.3