mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 23:03:00 -04:00
fix: Replace OC_App::getAllApps with a method in AppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
7ed583cb8e
commit
76f2bc0bfc
14 changed files with 58 additions and 55 deletions
|
|
@ -145,7 +145,7 @@ class Enable extends Command implements CompletionAwareInterface {
|
|||
*/
|
||||
public function completeArgumentValues($argumentName, CompletionContext $context): array {
|
||||
if ($argumentName === 'app-id') {
|
||||
$allApps = \OC_App::getAllApps();
|
||||
$allApps = $this->appManager->getAllAppsInAppsFolders();
|
||||
return array_diff($allApps, \OC_App::getEnabledApps(true, true));
|
||||
}
|
||||
return [];
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ class GetPath extends Base {
|
|||
*/
|
||||
public function completeArgumentValues($argumentName, CompletionContext $context): array {
|
||||
if ($argumentName === 'app') {
|
||||
return \OC_App::getAllApps();
|
||||
return $this->appManager->getAllAppsInAppsFolders();
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class Update extends Command {
|
|||
return 1;
|
||||
}
|
||||
} elseif ($input->getOption('all') || $input->getOption('showonly')) {
|
||||
$apps = \OC_App::getAllApps();
|
||||
$apps = $this->manager->getAllAppsInAppsFolders();
|
||||
} else {
|
||||
$output->writeln('<error>Please specify an app to update or "--all" to update all updatable apps"</error>');
|
||||
return 1;
|
||||
|
|
|
|||
|
|
@ -71,13 +71,10 @@ class {{classname}} extends SimpleMigrationStep {
|
|||
}
|
||||
';
|
||||
|
||||
protected Connection $connection;
|
||||
protected IAppManager $appManager;
|
||||
|
||||
public function __construct(Connection $connection, IAppManager $appManager) {
|
||||
$this->connection = $connection;
|
||||
$this->appManager = $appManager;
|
||||
|
||||
public function __construct(
|
||||
protected Connection $connection,
|
||||
protected IAppManager $appManager,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
|
|
@ -155,7 +152,7 @@ class {{classname}} extends SimpleMigrationStep {
|
|||
*/
|
||||
public function completeArgumentValues($argumentName, CompletionContext $context) {
|
||||
if ($argumentName === 'app') {
|
||||
$allApps = \OC_App::getAllApps();
|
||||
$allApps = $this->appManager->getAllAppsInAppsFolders();
|
||||
return array_diff($allApps, \OC_App::getEnabledApps(true, true));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class GenerateMetadataCommand extends Command {
|
|||
* @throws \Exception
|
||||
*/
|
||||
private function extractMigrationMetadataFromApps(): array {
|
||||
$allApps = \OC_App::getAllApps();
|
||||
$allApps = $this->appManager->getAllAppsInAppsFolders();
|
||||
$metadata = [];
|
||||
foreach ($allApps as $appId) {
|
||||
// We need to load app before being able to extract Migrations
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ class CreateJs extends Command implements CompletionAwareInterface {
|
|||
*/
|
||||
public function completeArgumentValues($argumentName, CompletionContext $context) {
|
||||
if ($argumentName === 'app') {
|
||||
return \OC_App::getAllApps();
|
||||
return $this->appManager->getAllAppsInAppsFolders();
|
||||
} elseif ($argumentName === 'lang') {
|
||||
$appName = $context->getWordAtIndex($context->getWordIndex() - 1);
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -155,6 +155,37 @@ class AppManager implements IAppManager {
|
|||
return array_keys($this->getInstalledAppsValues());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of all apps in the apps folder
|
||||
*
|
||||
* @return list<string> an array of app names (string IDs)
|
||||
*/
|
||||
public function getAllAppsInAppsFolders(): array {
|
||||
$apps = [];
|
||||
|
||||
foreach (\OC::$APPSROOTS as $apps_dir) {
|
||||
if (!is_readable($apps_dir['path'])) {
|
||||
$this->logger->warning('unable to read app folder : ' . $apps_dir['path'], ['app' => 'core']);
|
||||
continue;
|
||||
}
|
||||
$dh = opendir($apps_dir['path']);
|
||||
|
||||
if (is_resource($dh)) {
|
||||
while (($file = readdir($dh)) !== false) {
|
||||
if (
|
||||
$file[0] != '.' &&
|
||||
is_dir($apps_dir['path'] . '/' . $file) &&
|
||||
is_file($apps_dir['path'] . '/' . $file . '/appinfo/info.xml')
|
||||
) {
|
||||
$apps[] = $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array_values(array_unique($apps));
|
||||
}
|
||||
|
||||
/**
|
||||
* List all apps enabled for a user
|
||||
*
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class Checker {
|
|||
private ?IConfig $config,
|
||||
private ?IAppConfig $appConfig,
|
||||
ICacheFactory $cacheFactory,
|
||||
private ?IAppManager $appManager,
|
||||
private IAppManager $appManager,
|
||||
private IMimeTypeDetector $mimeTypeDetector,
|
||||
) {
|
||||
$this->cache = $cacheFactory->createDistributed(self::CACHE_KEY);
|
||||
|
|
@ -536,7 +536,7 @@ class Checker {
|
|||
public function runInstanceVerification() {
|
||||
$this->cleanResults();
|
||||
$this->verifyCoreSignature();
|
||||
$appIds = $this->appLocator->getAllApps();
|
||||
$appIds = $this->appManager->getAllAppsInAppsFolders();
|
||||
foreach ($appIds as $appId) {
|
||||
// If an application is shipped a valid signature is required
|
||||
$isShipped = $this->appManager->isShipped($appId);
|
||||
|
|
|
|||
|
|
@ -30,13 +30,4 @@ class AppLocator {
|
|||
}
|
||||
return $path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Providers \OC_App::getAllApps()
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAllApps(): array {
|
||||
return \OC_App::getAllApps();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -954,10 +954,10 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
if (\OC::$server->get(SystemConfig::class)->getValue('installed', false)) {
|
||||
$config = $c->get(\OCP\IConfig::class);
|
||||
$appConfig = $c->get(\OCP\IAppConfig::class);
|
||||
$appManager = $c->get(IAppManager::class);
|
||||
} else {
|
||||
$config = $appConfig = $appManager = null;
|
||||
}
|
||||
$appManager = $c->get(IAppManager::class);
|
||||
|
||||
return new Checker(
|
||||
new EnvironmentHelper(),
|
||||
|
|
|
|||
|
|
@ -468,30 +468,10 @@ class OC_App {
|
|||
* get a list of all apps in the apps folder
|
||||
*
|
||||
* @return string[] an array of app names (string IDs)
|
||||
* @todo: change the name of this method to getInstalledApps, which is more accurate
|
||||
* @deprecated 31.0.0 Use IAppManager::getAllAppsInAppsFolders instead
|
||||
*/
|
||||
public static function getAllApps(): array {
|
||||
$apps = [];
|
||||
|
||||
foreach (OC::$APPSROOTS as $apps_dir) {
|
||||
if (!is_readable($apps_dir['path'])) {
|
||||
\OCP\Server::get(LoggerInterface::class)->warning('unable to read app folder : ' . $apps_dir['path'], ['app' => 'core']);
|
||||
continue;
|
||||
}
|
||||
$dh = opendir($apps_dir['path']);
|
||||
|
||||
if (is_resource($dh)) {
|
||||
while (($file = readdir($dh)) !== false) {
|
||||
if ($file[0] != '.' and is_dir($apps_dir['path'] . '/' . $file) and is_file($apps_dir['path'] . '/' . $file . '/appinfo/info.xml')) {
|
||||
$apps[] = $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$apps = array_unique($apps);
|
||||
|
||||
return $apps;
|
||||
return \OCP\Server::get(IAppManager::class)->getAllAppsInAppsFolders();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -512,9 +492,9 @@ class OC_App {
|
|||
* @return array
|
||||
*/
|
||||
public function listAllApps(): array {
|
||||
$installedApps = OC_App::getAllApps();
|
||||
|
||||
$appManager = \OC::$server->getAppManager();
|
||||
|
||||
$installedApps = $appManager->getAllAppsInAppsFolders();
|
||||
//we don't want to show configuration for these
|
||||
$blacklist = $appManager->getAlwaysEnabledApps();
|
||||
$appList = [];
|
||||
|
|
|
|||
|
|
@ -292,4 +292,12 @@ interface IAppManager {
|
|||
* @since 31.0.0
|
||||
*/
|
||||
public function cleanAppId(string $app): string;
|
||||
|
||||
/**
|
||||
* Get a list of all apps in the apps folder
|
||||
*
|
||||
* @return list<string> an array of app names (string IDs)
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getAllAppsInAppsFolders(): array;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1030,9 +1030,9 @@ class CheckerTest extends TestCase {
|
|||
$this->checker
|
||||
->expects($this->once())
|
||||
->method('verifyCoreSignature');
|
||||
$this->appLocator
|
||||
$this->appManager
|
||||
->expects($this->once())
|
||||
->method('getAllApps')
|
||||
->method('getAllAppsInAppsFolders')
|
||||
->willReturn([
|
||||
'files',
|
||||
'calendar',
|
||||
|
|
|
|||
|
|
@ -30,8 +30,4 @@ class AppLocatorTest extends TestCase {
|
|||
|
||||
$this->locator->getAppPath('aTotallyNotExistingApp');
|
||||
}
|
||||
|
||||
public function testGetAllApps() {
|
||||
$this->assertSame(\OC_App::getAllApps(), $this->locator->getAllApps());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue