diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2013-01-24 13:01:43 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2013-01-24 13:01:43 +0100 |
commit | 3bf38c7a8469d1a1eac579378fc6336db86d0218 (patch) | |
tree | fc9993d972f17f58c86db7736f4f61f01f78e078 /apps/user_ldap | |
parent | fccfdb2a52de89532cbf3417082455e14b7eaf8b (diff) | |
download | nextcloud-server-3bf38c7a8469d1a1eac579378fc6336db86d0218.tar.gz nextcloud-server-3bf38c7a8469d1a1eac579378fc6336db86d0218.zip |
LDAP: add missing new LDAP Helper
Diffstat (limited to 'apps/user_ldap')
-rw-r--r-- | apps/user_ldap/lib/helper.php | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php new file mode 100644 index 00000000000..1751f57f503 --- /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; + } +} + |