Don't show apps which are always enabled in the app manager

remotes/origin/dav-zip-folder
Thomas Müller 2015-10-16 16:38:43 +07:00
parent 6fc59f85b6
commit 5a5bcccd0d
3 changed files with 20 additions and 9 deletions

@ -768,12 +768,9 @@ class OC_App {
if ($file[0] != '.' and is_dir($apps_dir['path'] . '/' . $file) and is_file($apps_dir['path'] . '/' . $file . '/appinfo/info.xml')) {
$apps[] = $file;
}
}
}
}
return $apps;
@ -793,7 +790,8 @@ class OC_App {
//TODO which apps do we want to blacklist and how do we integrate
// blacklisting with the multi apps folder feature?
$blacklist = array('files'); //we don't want to show configuration for these
//we don't want to show configuration for these
$blacklist = \OC::$server->getAppManager()->getAlwaysEnabledApps();
$appList = array();
$l = \OC::$server->getL10N('core');

@ -136,9 +136,6 @@ class AppManager implements IAppManager {
* @return bool
*/
private function checkAppForUser($enabled, $user) {
if ($this->isAlwaysEnabled($enabled)) {
return true;
}
if ($enabled === 'yes') {
return true;
} elseif (is_null($user)) {
@ -284,14 +281,17 @@ class AppManager implements IAppManager {
return $incompatibleApps;
}
/**
* @inheritdoc
*/
public function isShipped($appId) {
$this->loadShippedJson();
return in_array($appId, $this->shippedApps);
}
private function isAlwaysEnabled($appId) {
$this->loadShippedJson();
return in_array($appId, $this->alwaysEnabled);
$alwaysEnabled = $this->getAlwaysEnabledApps();
return in_array($appId, $alwaysEnabled);
}
private function loadShippedJson() {
@ -310,4 +310,11 @@ class AppManager implements IAppManager {
}
}
/**
* @inheritdoc
*/
public function getAlwaysEnabledApps() {
$this->loadShippedJson();
return $this->alwaysEnabled;
}
}

@ -105,4 +105,10 @@ interface IAppManager {
* @since 9.0.0
*/
public function isShipped($appId);
/**
* @return string[]
* @since 9.0.0
*/
public function getAlwaysEnabledApps();
}