From f6d133955e2adde02d3ee1a1065232b6315fafac Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Tue, 18 Jun 2013 20:03:59 +0200
Subject: [PATCH] LDAP: fix background job, resolves #3528

---
 apps/user_ldap/lib/jobs.php | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php
index 60ecc0da33..d626afed6c 100644
--- a/apps/user_ldap/lib/jobs.php
+++ b/apps/user_ldap/lib/jobs.php
@@ -134,21 +134,19 @@ class Jobs extends \OC\BackgroundJob\TimedJob {
 			\OCP\Util::DEBUG);
 	}
 
-	static private function getConnector() {
-		if(!is_null(self::$connector)) {
-			return self::$connector;
-		}
-		self::$connector = new \OCA\user_ldap\lib\Connection('user_ldap');
-		return self::$connector;
-	}
-
 	static private function getGroupBE() {
 		if(!is_null(self::$groupBE)) {
 			return self::$groupBE;
 		}
-		self::getConnector();
-		self::$groupBE = new \OCA\user_ldap\GROUP_LDAP();
-		self::$groupBE->setConnector(self::$connector);
+		$configPrefixes = Helper::getServerConfigurationPrefixes(true);
+		if(count($configPrefixes) == 1) {
+			//avoid the proxy when there is only one LDAP server configured
+			$connector = new Connection($configPrefixes[0]);
+			self::$groupBE = new \OCA\user_ldap\GROUP_LDAP();
+			self::$groupBE->setConnector($connector);
+		} else {
+			self::$groupBE = new \OCA\user_ldap\Group_Proxy($configPrefixes);
+		}
 
 		return self::$groupBE;
 	}
-- 
GitLab