summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/appinfo/update.php
blob: b4121b19852e970a0cd29237feca83bb92d95ec6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

$configInstance = \OC::$server->getConfig();

//detect if we can switch on naming guidelines. We won't do it on conflicts.
//it's a bit spaghetti, but hey.
$state = $configInstance->getSystemValue('ldapIgnoreNamingRules', 'unset');
if($state === 'unset') {
	$configInstance->setSystemValue('ldapIgnoreNamingRules', false);
}

$installedVersion = $configInstance->getAppValue('user_ldap', 'installed_version');
$enableRawMode = version_compare($installedVersion, '0.4.1', '<');

$helper = new \OCA\user_ldap\lib\Helper();
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldap = new OCA\user_ldap\lib\LDAP();
foreach($configPrefixes as $config) {
	$connection = new OCA\user_ldap\lib\Connection($ldap, $config);

	$state = $configInstance->getAppValue(
		'user_ldap', $config.'ldap_uuid_user_attribute', 'not existing');
	if($state === 'non existing') {
		$value = $configInstance->getAppValue(
			'user_ldap', $config.'ldap_uuid_attribute', '');
		$configInstance->setAppValue(
			'user_ldap', $config.'ldap_uuid_user_attribute', $value);
		$configInstance->setAppValue(
			'user_ldap', $config.'ldap_uuid_group_attribute', $value);
	}

	$state = $configInstance->getAppValue(
		'user_ldap', $config.'ldap_expert_uuid_user_attr', 'not existing');
	if($state === 'non existing') {
		$value = $configInstance->getAppValue(
			'user_ldap', $config.'ldap_expert_uuid_attr', '');
		$configInstance->setAppValue(
			'user_ldap', $config.'ldap_expert_uuid_user_attr', $value);
		$configInstance->setAppValue(
			'user_ldap', $config.'ldap_expert_uuid_group_attr', $value);
	}

	if($enableRawMode) {
		$configInstance->setAppValue('user_ldap', $config.'ldap_user_filter_mode', 1);
		$configInstance->setAppValue('user_ldap', $config.'ldap_login_filter_mode', 1);
		$configInstance->setAppValue('user_ldap', $config.'ldap_group_filter_mode', 1);
	}
}