diff options
author | Joas Schilling <coding@schilljs.com> | 2017-10-04 16:35:10 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-10-05 11:34:03 +0200 |
commit | 6292f665d7d10f23cedc71befb2acb2ef467870a (patch) | |
tree | 4ddfeb4df9f5f7ce0477660a4334d900ec8ac8fe /lib/private/Settings | |
parent | 060eac40d868b55733fef0389b487ef64a211a4d (diff) | |
download | nextcloud-server-6292f665d7d10f23cedc71befb2acb2ef467870a.tar.gz nextcloud-server-6292f665d7d10f23cedc71befb2acb2ef467870a.zip |
Allow multiple settings and sections per app
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private/Settings')
-rw-r--r-- | lib/private/Settings/Manager.php | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 3c5ff5670da..8de72ce314e 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -127,18 +127,26 @@ class Manager implements IManager { * @inheritdoc */ public function setupSettings(array $settings) { - if (isset($settings[IManager::KEY_ADMIN_SECTION])) { - $this->setupSectionEntry($settings[IManager::KEY_ADMIN_SECTION], 'admin'); + if (!empty($settings[IManager::KEY_ADMIN_SECTION])) { + foreach ($settings[IManager::KEY_ADMIN_SECTION] as $className) { + $this->setupSectionEntry($className, 'admin'); + } } - if (isset($settings[IManager::KEY_ADMIN_SETTINGS])) { - $this->setupSettingsEntry($settings[IManager::KEY_ADMIN_SETTINGS], 'admin'); + if (!empty($settings[IManager::KEY_ADMIN_SETTINGS])) { + foreach ($settings[IManager::KEY_ADMIN_SETTINGS] as $className) { + $this->setupSettingsEntry($className, 'admin'); + } } - if (isset($settings[IManager::KEY_PERSONAL_SECTION])) { - $this->setupSectionEntry($settings[IManager::KEY_PERSONAL_SECTION], 'personal'); + if (!empty($settings[IManager::KEY_PERSONAL_SECTION])) { + foreach ($settings[IManager::KEY_PERSONAL_SECTION] as $className) { + $this->setupSectionEntry($className, 'personal'); + } } - if (isset($settings[IManager::KEY_PERSONAL_SETTINGS])) { - $this->setupSettingsEntry($settings[IManager::KEY_PERSONAL_SETTINGS], 'personal'); + if (!empty($settings[IManager::KEY_PERSONAL_SETTINGS])) { + foreach ($settings[IManager::KEY_PERSONAL_SETTINGS] as $className) { + $this->setupSettingsEntry($className, 'personal'); + } } } @@ -153,18 +161,26 @@ class Manager implements IManager { public function onAppDisabled($appId) { $appInfo = \OC_App::getAppInfo($appId); // hello static legacy - if (isset($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) { - $this->mapper->remove(Mapper::TABLE_ADMIN_SECTIONS, trim($appInfo['settings'][IManager::KEY_ADMIN_SECTION], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) { + foreach ($appInfo['settings'][IManager::KEY_ADMIN_SECTION] as $className) { + $this->mapper->remove(Mapper::TABLE_ADMIN_SECTIONS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) { - $this->mapper->remove(Mapper::TABLE_ADMIN_SETTINGS, trim($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) { + foreach ($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS] as $className) { + $this->mapper->remove(Mapper::TABLE_ADMIN_SETTINGS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_PERSONAL_SECTION])) { - $this->mapper->remove(Mapper::TABLE_PERSONAL_SECTIONS, trim($appInfo['settings'][IManager::KEY_PERSONAL_SECTION], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_PERSONAL_SECTION])) { + foreach ($appInfo['settings'][IManager::KEY_PERSONAL_SECTION] as $className) { + $this->mapper->remove(Mapper::TABLE_PERSONAL_SECTIONS, trim($className, '\\')); + } } - if (isset($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS])) { - $this->mapper->remove(Mapper::TABLE_PERSONAL_SETTINGS, trim($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS], '\\')); + if (!empty($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS])) { + foreach ($appInfo['settings'][IManager::KEY_PERSONAL_SETTINGS] as $className) { + $this->mapper->remove(Mapper::TABLE_PERSONAL_SETTINGS, trim($className, '\\')); + } } } |