Skip to content
Snippets Groups Projects
Commit 6063ce9c authored by Arthur Schiwon's avatar Arthur Schiwon
Browse files

LDAP: enable support for multiple LDAP/AD servers

parent 4699f36e
No related branches found
No related tags found
No related merge requests found
......@@ -23,11 +23,27 @@
OCP\App::registerAdmin('user_ldap', 'settings');
$connector = new OCA\user_ldap\lib\Connection('', 'user_ldap');
$userBackend = new OCA\user_ldap\USER_LDAP();
$userBackend->setConnector($connector);
$groupBackend = new OCA\user_ldap\GROUP_LDAP();
$groupBackend->setConnector($connector);
$query = \OCP\DB::prepare('
SELECT DISTINCT `configkey`
FROM `*PREFIX*appconfig`
WHERE `configkey` LIKE ?
');
$serverConnections = $query->execute(array('%ldap_login_filter'))->fetchAll();
if(count($serverConnections) == 1) {
$prefix = substr($serverConnections[0]['configkey'], 0, strlen($serverConnections[0]['configkey'])- strlen('ldap_login_filter'));
$connector = new OCA\user_ldap\lib\Connection($prefix);
$userBackend = new OCA\user_ldap\USER_LDAP();
$userBackend->setConnector($connector);
$groupBackend = new OCA\user_ldap\GROUP_LDAP();
$groupBackend->setConnector($connector);
} else {
$prefixes = array();
foreach($serverConnections as $serverConnection) {
$prefixes[] = substr($serverConnection['configkey'], 0, strlen($serverConnection['configkey'])- strlen('ldap_login_filter'));
}
$userBackend = new OCA\user_ldap\User_Proxy($prefixes);
$groupBackend = new OCA\user_ldap\Group_Proxy($prefixes);
}
// register user backend
OC_User::useBackend($userBackend);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment