From f28235a7ef6664978a8b4f6d16a47df508244294 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Mon, 12 Jan 2015 16:25:11 +0100
Subject: [PATCH] fix retrieval of user groups

---
 apps/user_ldap/lib/access.php     | 6 +++++-
 apps/user_ldap/lib/connection.php | 4 +++-
 2 files changed, 8 insertions(+), 2 deletions(-)

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;
-- 
GitLab