diff options
author | Joas Schilling <coding@schilljs.com> | 2017-01-04 10:40:14 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-01-04 10:40:14 +0100 |
commit | ec4b0d1e8468302c96173934b60dbad6e0e8a070 (patch) | |
tree | 4470cfced33f2c7749342599c8f58a94e2a089e0 /lib/private | |
parent | a75cfb601ec4d20f2eeddb25d1eb3ba745b71944 (diff) | |
download | nextcloud-server-ec4b0d1e8468302c96173934b60dbad6e0e8a070.tar.gz nextcloud-server-ec4b0d1e8468302c96173934b60dbad6e0e8a070.zip |
Remove group restrictions when those are not allowed anymore
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/App/AppManager.php | 15 | ||||
-rw-r--r-- | lib/private/legacy/app.php | 8 |
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index fca5c9b87ac..6b819ef7ac1 100644 --- a/lib/private/App/AppManager.php +++ b/lib/private/App/AppManager.php @@ -221,6 +221,21 @@ class AppManager implements IAppManager { } /** + * Whether a list of types contains a protected app type + * + * @param string[] $types + * @return bool + */ + public function hasProtectedAppType($types) { + if (empty($types)) { + return false; + } + + $protectedTypes = array_intersect($this->protectedAppTypes, $types); + return !empty($protectedTypes); + } + + /** * Enable an app only for specific groups * * @param string $appId diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index adf29601ac6..8ef7e08c733 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -273,9 +273,17 @@ class OC_App { $appTypes = implode(',', $appData['types']); } else { $appTypes = ''; + $appData['types'] = []; } \OC::$server->getAppConfig()->setValue($app, 'types', $appTypes); + + if (\OC::$server->getAppManager()->hasProtectedAppType($appData['types'])) { + $enabled = \OC::$server->getAppConfig()->getValue($app, 'enabled', 'yes'); + if ($enabled !== 'yes' && $enabled !== 'no') { + \OC::$server->getAppConfig()->setValue($app, 'enabled', 'yes'); + } + } } /** |