Remove group restrictions when those are not allowed anymore
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
639391717d
commit
f5310c0c26
|
@ -220,6 +220,21 @@ class AppManager implements IAppManager {
|
|||
$this->clearAppsCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -61,6 +61,15 @@ interface IAppManager {
|
|||
*/
|
||||
public function enableApp($appId);
|
||||
|
||||
/**
|
||||
* Whether a list of types contains a protected app type
|
||||
*
|
||||
* @param string[] $types
|
||||
* @return bool
|
||||
* @since 12.0.0
|
||||
*/
|
||||
public function hasProtectedAppType($types);
|
||||
|
||||
/**
|
||||
* Enable an app only for specific groups
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue