From f0e69b2b99174c29859729c0d91d8b4a97c6f28b Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 13 May 2014 17:47:00 +0200 Subject: [PATCH] Port LDAP: fix filter can be reset and broken after upgrade from OC 5 #8579 LDAP: set filter mode to raw, so filters will not be changed and broken after upgrade from oc5, when visiting the LDAP settings and opening filter tabs get the correct version number for compare -.- bump version and don't overwrite values on next update if not necessary simpler and better readable assignment --- apps/user_ldap/appinfo/update.php | 42 ++++++++++++++++++++++--------- apps/user_ldap/appinfo/version | 2 +- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index 41770cf97b..1e706ce869 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -7,21 +7,39 @@ if($state === 'unset') { OCP\Config::setSystemValue('ldapIgnoreNamingRules', false); } +$installedVersion = OCP\Config::getAppValue('user_ldap', 'installed_version'); +$enableRawMode = version_compare($installedVersion, '0.4.1', '<'); + $configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); $ldap = new OCA\user_ldap\lib\LDAP(); foreach($configPrefixes as $config) { $connection = new OCA\user_ldap\lib\Connection($ldap, $config); - $value = \OCP\Config::getAppValue('user_ldap', - $config.'ldap_uuid_attribute', 'auto'); - \OCP\Config::setAppValue('user_ldap', - $config.'ldap_uuid_user_attribute', $value); - \OCP\Config::setAppValue('user_ldap', - $config.'ldap_uuid_group_attribute', $value); - $value = \OCP\Config::getAppValue('user_ldap', - $config.'ldap_expert_uuid_attr', 'auto'); - \OCP\Config::setAppValue('user_ldap', - $config.'ldap_expert_uuid_user_attr', $value); - \OCP\Config::setAppValue('user_ldap', - $config.'ldap_expert_uuid_group_attr', $value); + $state = \OCP\Config::getAppValue( + 'user_ldap', $config.'ldap_uuid_user_attribute', 'not existing'); + if($state === 'non existing') { + $value = \OCP\Config::getAppValue( + 'user_ldap', $config.'ldap_uuid_attribute', 'auto'); + \OCP\Config::setAppValue( + 'user_ldap', $config.'ldap_uuid_user_attribute', $value); + \OCP\Config::setAppValue( + 'user_ldap', $config.'ldap_uuid_group_attribute', $value); + } + + $state = \OCP\Config::getAppValue( + 'user_ldap', $config.'ldap_expert_uuid_user_attr', 'not existing'); + if($state === 'non existing') { + $value = \OCP\Config::getAppValue( + 'user_ldap', $config.'ldap_expert_uuid_attr', 'auto'); + \OCP\Config::setAppValue( + 'user_ldap', $config.'ldap_expert_uuid_user_attr', $value); + \OCP\Config::setAppValue( + 'user_ldap', $config.'ldap_expert_uuid_group_attr', $value); + } + + if($enableRawMode) { + \OCP\Config::setAppValue('user_ldap', $config.'ldap_user_filter_mode', 1); + \OCP\Config::setAppValue('user_ldap', $config.'ldap_login_filter_mode', 1); + \OCP\Config::setAppValue('user_ldap', $config.'ldap_group_filter_mode', 1); + } } diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version index 44bb5d1f74..2b7c5ae018 100644 --- a/apps/user_ldap/appinfo/version +++ b/apps/user_ldap/appinfo/version @@ -1 +1 @@ -0.4.1 \ No newline at end of file +0.4.2