aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2024-09-12 16:38:35 +0200
committerCôme Chilliet <come.chilliet@nextcloud.com>2024-09-13 10:08:44 +0200
commit76f2bc0bfc86a9d1ed34d37c574c7e7a327c0fab (patch)
tree74bb396c0324eca612b1cec1ec2f0c20a77fb942
parent7ed583cb8ee64f77696b0e23f79d8d1b4038bcbc (diff)
downloadnextcloud-server-76f2bc0bfc86a9d1ed34d37c574c7e7a327c0fab.tar.gz
nextcloud-server-76f2bc0bfc86a9d1ed34d37c574c7e7a327c0fab.zip
fix: Replace OC_App::getAllApps with a method in AppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r--core/Command/App/Enable.php2
-rw-r--r--core/Command/App/GetPath.php2
-rw-r--r--core/Command/App/Update.php2
-rw-r--r--core/Command/Db/Migrations/GenerateCommand.php13
-rw-r--r--core/Command/Db/Migrations/GenerateMetadataCommand.php2
-rw-r--r--core/Command/L10n/CreateJs.php2
-rw-r--r--lib/private/App/AppManager.php31
-rw-r--r--lib/private/IntegrityCheck/Checker.php4
-rw-r--r--lib/private/IntegrityCheck/Helpers/AppLocator.php9
-rw-r--r--lib/private/Server.php2
-rw-r--r--lib/private/legacy/OC_App.php28
-rw-r--r--lib/public/App/IAppManager.php8
-rw-r--r--tests/lib/IntegrityCheck/CheckerTest.php4
-rw-r--r--tests/lib/IntegrityCheck/Helpers/AppLocatorTest.php4
14 files changed, 58 insertions, 55 deletions
diff --git a/core/Command/App/Enable.php b/core/Command/App/Enable.php
index b351a14c39e..5366230b841 100644
--- a/core/Command/App/Enable.php
+++ b/core/Command/App/Enable.php
@@ -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 [];
diff --git a/core/Command/App/GetPath.php b/core/Command/App/GetPath.php
index 442af2f3570..3ba4ed7781b 100644
--- a/core/Command/App/GetPath.php
+++ b/core/Command/App/GetPath.php
@@ -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 [];
}
diff --git a/core/Command/App/Update.php b/core/Command/App/Update.php
index b4018c94b79..b2d02e222de 100644
--- a/core/Command/App/Update.php
+++ b/core/Command/App/Update.php
@@ -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;
diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php
index 62d5ad201ed..cd92dc5acd6 100644
--- a/core/Command/Db/Migrations/GenerateCommand.php
+++ b/core/Command/Db/Migrations/GenerateCommand.php
@@ -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));
}
diff --git a/core/Command/Db/Migrations/GenerateMetadataCommand.php b/core/Command/Db/Migrations/GenerateMetadataCommand.php
index 55a2a6aedab..ae83f92b29e 100644
--- a/core/Command/Db/Migrations/GenerateMetadataCommand.php
+++ b/core/Command/Db/Migrations/GenerateMetadataCommand.php
@@ -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
diff --git a/core/Command/L10n/CreateJs.php b/core/Command/L10n/CreateJs.php
index 27d537b093e..7d45fbe91f8 100644
--- a/core/Command/L10n/CreateJs.php
+++ b/core/Command/L10n/CreateJs.php
@@ -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 {
diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php
index 974545cfe92..4ffddef98c3 100644
--- a/lib/private/App/AppManager.php
+++ b/lib/private/App/AppManager.php
@@ -156,6 +156,37 @@ class AppManager implements IAppManager {
}
/**
+ * 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
*
* @param \OCP\IUser $user
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php
index d38ccf497f4..6443c43d210 100644
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -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);
diff --git a/lib/private/IntegrityCheck/Helpers/AppLocator.php b/lib/private/IntegrityCheck/Helpers/AppLocator.php
index 3da5cc13227..148a3aeda76 100644
--- a/lib/private/IntegrityCheck/Helpers/AppLocator.php
+++ b/lib/private/IntegrityCheck/Helpers/AppLocator.php
@@ -30,13 +30,4 @@ class AppLocator {
}
return $path;
}
-
- /**
- * Providers \OC_App::getAllApps()
- *
- * @return array
- */
- public function getAllApps(): array {
- return \OC_App::getAllApps();
- }
}
diff --git a/lib/private/Server.php b/lib/private/Server.php
index b0ccb0f4b4d..c514a4b93ff 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -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(),
diff --git a/lib/private/legacy/OC_App.php b/lib/private/legacy/OC_App.php
index d72d5fe8522..ef84d35d7bc 100644
--- a/lib/private/legacy/OC_App.php
+++ b/lib/private/legacy/OC_App.php
@@ -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 = [];
diff --git a/lib/public/App/IAppManager.php b/lib/public/App/IAppManager.php
index 68c3cc771f4..580288fbff7 100644
--- a/lib/public/App/IAppManager.php
+++ b/lib/public/App/IAppManager.php
@@ -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;
}
diff --git a/tests/lib/IntegrityCheck/CheckerTest.php b/tests/lib/IntegrityCheck/CheckerTest.php
index bf4ea16f564..05607f8113c 100644
--- a/tests/lib/IntegrityCheck/CheckerTest.php
+++ b/tests/lib/IntegrityCheck/CheckerTest.php
@@ -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',
diff --git a/tests/lib/IntegrityCheck/Helpers/AppLocatorTest.php b/tests/lib/IntegrityCheck/Helpers/AppLocatorTest.php
index a86507f6bb2..d99a42e0d63 100644
--- a/tests/lib/IntegrityCheck/Helpers/AppLocatorTest.php
+++ b/tests/lib/IntegrityCheck/Helpers/AppLocatorTest.php
@@ -30,8 +30,4 @@ class AppLocatorTest extends TestCase {
$this->locator->getAppPath('aTotallyNotExistingApp');
}
-
- public function testGetAllApps() {
- $this->assertSame(\OC_App::getAllApps(), $this->locator->getAllApps());
- }
}