aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2025-01-24 13:14:19 +0100
committerFerdinand Thiessen <opensource@fthiessen.de>2025-01-24 15:10:23 +0100
commiteea91fa1ba846c7fb5b9eef88530438c404a8aff (patch)
treec5a32b8f989d2ade551d3af751b2735490ed8798
parent31664b3edd38c4416945e30eaf14a9ab23492ae0 (diff)
downloadnextcloud-server-fix/get-version-of-core.tar.gz
nextcloud-server-fix/get-version-of-core.zip
fix(TemplateLayout): `core` is not an app but the server itselffix/get-version-of-core
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
-rw-r--r--build/psalm-baseline.xml9
-rw-r--r--lib/private/TemplateLayout.php17
-rw-r--r--tests/lib/AppTest.php32
3 files changed, 30 insertions, 28 deletions
diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml
index 11b121045a2..49ce3c7b054 100644
--- a/build/psalm-baseline.xml
+++ b/build/psalm-baseline.xml
@@ -2576,15 +2576,6 @@
<code><![CDATA[$script]]></code>
</ParamNameMismatch>
</file>
- <file src="lib/private/TemplateLayout.php">
- <InvalidParamDefault>
- <code><![CDATA[string]]></code>
- <code><![CDATA[string]]></code>
- </InvalidParamDefault>
- <InvalidScalarArgument>
- <code><![CDATA[$appId]]></code>
- </InvalidScalarArgument>
- </file>
<file src="lib/private/URLGenerator.php">
<InvalidReturnStatement>
<code><![CDATA[$path]]></code>
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index 001ef3afca5..e52ef702ad3 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -344,13 +344,18 @@ class TemplateLayout extends \OC_Template {
return false;
}
- $appVersion = $this->appManager->getAppVersion($appId);
- // For shipped apps the app version is not a single source of truth, we rather also need to consider the Nextcloud version
- if ($this->appManager->isShipped($appId)) {
- $appVersion .= '-' . self::$versionHash;
- }
+ if ($appId === 'core') {
+ // core is not a real app but the server itself
+ $hash = self::$versionHash;
+ } else {
+ $appVersion = $this->appManager->getAppVersion($appId);
+ // For shipped apps the app version is not a single source of truth, we rather also need to consider the Nextcloud version
+ if ($this->appManager->isShipped($appId)) {
+ $appVersion .= '-' . self::$versionHash;
+ }
- $hash = substr(md5($appVersion), 0, 8);
+ $hash = substr(md5($appVersion), 0, 8);
+ }
self::$cacheBusterCache[$path] = $hash;
}
diff --git a/tests/lib/AppTest.php b/tests/lib/AppTest.php
index 98c3a6ff158..3e4d762a0a4 100644
--- a/tests/lib/AppTest.php
+++ b/tests/lib/AppTest.php
@@ -12,7 +12,13 @@ use OC\App\InfoParser;
use OC\AppConfig;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IAppConfig;
-use OCP\IURLGenerator;
+use OCP\ICacheFactory;
+use OCP\IConfig;
+use OCP\IDBConnection;
+use OCP\IGroupManager;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\ServerVersion;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
@@ -463,8 +469,8 @@ class AppTest extends \Test\TestCase {
* @dataProvider appConfigValuesProvider
*/
public function testEnabledApps($user, $expectedApps, $forceAll): void {
- $userManager = \OC::$server->getUserManager();
- $groupManager = \OC::$server->getGroupManager();
+ $userManager = \OCP\Server::get(IUserManager::class);
+ $groupManager = \OCP\Server::get(IGroupManager::class);
$user1 = $userManager->createUser(self::TEST_USER1, 'NotAnEasyPassword123456+');
$user2 = $userManager->createUser(self::TEST_USER2, 'NotAnEasyPassword123456_');
$user3 = $userManager->createUser(self::TEST_USER3, 'NotAnEasyPassword123456?');
@@ -512,7 +518,7 @@ class AppTest extends \Test\TestCase {
* enabled apps more than once when a user is set.
*/
public function testEnabledAppsCache(): void {
- $userManager = \OC::$server->getUserManager();
+ $userManager = \OCP\Server::get(IUserManager::class);
$user1 = $userManager->createUser(self::TEST_USER1, 'NotAnEasyPassword123456+');
\OC_User::setUserId(self::TEST_USER1);
@@ -544,8 +550,8 @@ class AppTest extends \Test\TestCase {
private function setupAppConfigMock() {
/** @var AppConfig|MockObject */
$appConfig = $this->getMockBuilder(AppConfig::class)
- ->setMethods(['getValues'])
- ->setConstructorArgs([\OC::$server->getDatabaseConnection()])
+ ->onlyMethods(['getValues'])
+ ->setConstructorArgs([\OCP\Server::get(IDBConnection::class)])
->disableOriginalConstructor()
->getMock();
@@ -561,13 +567,13 @@ class AppTest extends \Test\TestCase {
private function registerAppConfig(AppConfig $appConfig) {
$this->overwriteService(AppConfig::class, $appConfig);
$this->overwriteService(AppManager::class, new AppManager(
- \OC::$server->getUserSession(),
- \OC::$server->getConfig(),
- \OC::$server->getGroupManager(),
- \OC::$server->getMemCacheFactory(),
- \OC::$server->get(IEventDispatcher::class),
- \OC::$server->get(LoggerInterface::class),
- \OC::$server->get(IURLGenerator::class),
+ \OCP\Server::get(IUserSession::class),
+ \OCP\Server::get(IConfig::class),
+ \OCP\Server::get(IGroupManager::class),
+ \OCP\Server::get(ICacheFactory::class),
+ \OCP\Server::get(IEventDispatcher::class),
+ \OCP\Server::get(LoggerInterface::class),
+ \OCP\Server::get(ServerVersion::class),
));
}