diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index f3657176f7..0fb968cebe 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -149,7 +149,11 @@ class Access extends LDAPUtility implements user\IUserTools { $this->abandonPagedSearch(); // openLDAP requires that we init a new Paged Search. Not needed by AD, // but does not hurt either. - $this->initPagedSearch($filter, array($dn), array($attr), 1, 0); + $pagingSize = intval($this->connection->ldapPagingSize); + // 0 won't result in replies, small numbers may leave out groups + // (cf. #12306), 500 is default for paging and should work everywhere. + $maxResults = $pagingSize < 20 ? $pagingSize : 500; + $this->initPagedSearch($filter, array($dn), array($attr), $maxResults, 0); $dn = $this->DNasBaseParameter($dn); $rr = @$this->ldap->read($cr, $dn, $filter, array($attr)); if(!$this->ldap->isResource($rr)) { diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index c9b4fded9f..a9d21ffc8e 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -26,11 +26,13 @@ namespace OCA\user_ldap\lib; //magic properties (incomplete) /** * responsible for LDAP connections in context with the provided configuration + * * @property string ldapUserFilter * @property string ldapUserDisplayName * @property boolean hasPagedResultSupport * @property string[] ldapBaseUsers -*/ + * @property int|string ldapPagingSize holds an integer + */ class Connection extends LDAPUtility { private $ldapConnectionRes = null; private $configPrefix;