From 3bf38c7a8469d1a1eac579378fc6336db86d0218 Mon Sep 17 00:00:00 2001
From: Arthur Schiwon <blizzz@owncloud.com>
Date: Thu, 24 Jan 2013 13:01:43 +0100
Subject: [PATCH] LDAP: add missing new LDAP Helper

---
 apps/user_ldap/lib/helper.php | 66 +++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 apps/user_ldap/lib/helper.php

diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php
new file mode 100644
index 0000000000..1751f57f50
--- /dev/null
+++ b/apps/user_ldap/lib/helper.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * ownCloud – LDAP Helper
+ *
+ * @author Arthur Schiwon
+ * @copyright 2013 Arthur Schiwon blizzz@owncloud.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\user_ldap\lib;
+
+class Helper {
+	
+	/**
+	 * @brief returns prefixes for each saved LDAP/AD server configuration.
+	 * @return array with a list of the available prefixes
+	 * 
+	 * Configuration prefixes are used to set up configurations for n LDAP or
+	 * AD servers. Since configuration is stored in the database, table 
+	 * appconfig under appid user_ldap, the common identifiers in column
+	 * 'configkey' have a prefix. The prefix for the very first server
+	 * configuration is empty.
+	 * Configkey Examples:
+	 * Server 1: ldap_login_filtter
+	 * Server 2: s1_ldap_login_filter
+	 * Server 3: s2_ldap_login_filter
+	 * 
+	 * The prefix needs to be passed to the constructor of Connection class, 
+	 * except the default (first) server shall be connected to.
+	 * 
+	 */
+	static public function getServerConfigurationPrefixes() {
+		$referenceConfigkey = 'ldap_login_filter';
+		
+		$query = \OCP\DB::prepare('
+			SELECT DISTINCT `configkey`
+			FROM `*PREFIX*appconfig`
+			WHERE `configkey` LIKE ?
+		');
+		
+		$serverConfigs = $query->execute(array('%'.$referenceConfigkey))->fetchAll();
+		$prefixes = array();
+		
+		foreach($serverConfigs as $serverConfig) {
+			$len = strlen($serverConfig['configkey']) - strlen($referenceConfigkey);
+			$prefixes[] = substr($serverConfig['configkey'], 0, $len);
+		}
+		
+		return $prefixes;
+	}
+}
+
-- 
GitLab