mirror of
https://github.com/nextcloud/server.git
synced 2025-03-15 00:43:23 +00:00
chore(legacy): Introduce public version ct plass and drop version methods from OC_Util
Signed-off-by: Julius Knorr <jus@bitgrid.net>
This commit is contained in:
parent
7ff911665e
commit
606241caeb
44 changed files with 285 additions and 264 deletions
apps
settings
theming
lib
tests
updatenotification
lib/BackgroundJob
tests/BackgroundJob
user_ldap/lib/Controller
core
lib
base.php
status.phpcomposer/composer
private
App/AppStore/Fetcher
Console
IntegrityCheck
Server.phpSetup.phpTemplate
TemplateLayout.phpUpdater.phpUpdater
legacy
public
tests
|
@ -8,18 +8,15 @@ namespace OCA\Settings\Settings\Admin;
|
|||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Settings\IDelegatedSettings;
|
||||
|
||||
class Overview implements IDelegatedSettings {
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/** @var IL10N $l */
|
||||
private $l;
|
||||
|
||||
public function __construct(IConfig $config, IL10N $l) {
|
||||
$this->config = $config;
|
||||
$this->l = $l;
|
||||
public function __construct(
|
||||
private ServerVersion $serverVersion,
|
||||
private IConfig $config,
|
||||
private IL10N $l,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,6 +25,7 @@ class Overview implements IDelegatedSettings {
|
|||
public function getForm() {
|
||||
$parameters = [
|
||||
'checkForWorkingWellKnownSetup' => $this->config->getSystemValue('check_for_working_wellknown_setup', true),
|
||||
'version' => $this->serverVersion->getHumanVersion(),
|
||||
];
|
||||
|
||||
return new TemplateResponse('settings', 'settings/admin/overview', $parameters, '');
|
||||
|
|
|
@ -57,5 +57,5 @@
|
|||
<div id="version" class="section">
|
||||
<!-- should be the last part, so Updater can follow if enabled (it has no heading therefore). -->
|
||||
<h2><?php p($l->t('Version'));?></h2>
|
||||
<p><strong><a href="<?php print_unescaped($theme->getBaseUrl()); ?>" rel="noreferrer noopener" target="_blank">Nextcloud Hub 9</a> (<?php p(OC_Util::getHumanVersion()) ?>)</strong></p>
|
||||
<p><strong><a href="<?php print_unescaped($theme->getBaseUrl()); ?>" rel="noreferrer noopener" target="_blank">Nextcloud Hub 9</a> (<?php p($_['version']) ?>)</strong></p>
|
||||
</div>
|
||||
|
|
|
@ -13,19 +13,16 @@ use OCP\Files\NotFoundException;
|
|||
use OCP\Files\SimpleFS\ISimpleFile;
|
||||
use OCP\IConfig;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
class Util {
|
||||
|
||||
private IConfig $config;
|
||||
private IAppManager $appManager;
|
||||
private IAppData $appData;
|
||||
private ImageManager $imageManager;
|
||||
|
||||
public function __construct(IConfig $config, IAppManager $appManager, IAppData $appData, ImageManager $imageManager) {
|
||||
$this->config = $config;
|
||||
$this->appManager = $appManager;
|
||||
$this->appData = $appData;
|
||||
$this->imageManager = $imageManager;
|
||||
public function __construct(
|
||||
private ServerVersion $serverVersion,
|
||||
private IConfig $config,
|
||||
private IAppManager $appManager,
|
||||
private IAppData $appData,
|
||||
private ImageManager $imageManager,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -311,7 +308,7 @@ class Util {
|
|||
if (!is_null($user)) {
|
||||
$userId = $user->getUID();
|
||||
}
|
||||
$serverVersion = \OC_Util::getVersionString();
|
||||
$serverVersion = $this->serverVersion->getVersionString();
|
||||
$themingAppVersion = $this->appManager->getAppVersion('theming');
|
||||
$userCacheBuster = '';
|
||||
if ($userId) {
|
||||
|
|
|
@ -14,6 +14,7 @@ use OCP\Files\IAppData;
|
|||
use OCP\IConfig;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
|
@ -169,7 +170,7 @@ class CapabilitiesTest extends TestCase {
|
|||
->method('getLogo')
|
||||
->willReturn($logo);
|
||||
|
||||
$util = new Util($this->config, $this->createMock(IAppManager::class), $this->createMock(IAppData::class), $this->createMock(ImageManager::class));
|
||||
$util = new Util($this->createMock(ServerVersion::class), $this->config, $this->createMock(IAppManager::class), $this->createMock(IAppData::class), $this->createMock(ImageManager::class));
|
||||
$this->util->expects($this->exactly(3))
|
||||
->method('elementColor')
|
||||
->with($color)
|
||||
|
|
|
@ -13,6 +13,7 @@ use OCA\Theming\Util;
|
|||
use OCP\App\IAppManager;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\Error\Warning;
|
||||
use Test\TestCase;
|
||||
|
||||
|
@ -41,7 +42,7 @@ class IconBuilderTest extends TestCase {
|
|||
$this->themingDefaults = $this->createMock(ThemingDefaults::class);
|
||||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
$this->imageManager = $this->createMock(ImageManager::class);
|
||||
$this->util = new Util($this->config, $this->appManager, $this->appData, $this->imageManager);
|
||||
$this->util = new Util($this->createMock(ServerVersion::class), $this->config, $this->appManager, $this->appData, $this->imageManager);
|
||||
$this->iconBuilder = new IconBuilder($this->themingDefaults, $this->util, $this->imageManager);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ use OCP\IConfig;
|
|||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class DarkHighContrastThemeTest extends AccessibleThemeTestCase {
|
||||
|
@ -49,6 +50,7 @@ class DarkHighContrastThemeTest extends AccessibleThemeTestCase {
|
|||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
|
||||
$this->util = new Util(
|
||||
$this->createMock(ServerVersion::class),
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->createMock(IAppData::class),
|
||||
|
|
|
@ -18,6 +18,7 @@ use OCP\IConfig;
|
|||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class DarkThemeTest extends AccessibleThemeTestCase {
|
||||
|
@ -46,6 +47,7 @@ class DarkThemeTest extends AccessibleThemeTestCase {
|
|||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
|
||||
$this->util = new Util(
|
||||
$this->createMock(ServerVersion::class),
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->createMock(IAppData::class),
|
||||
|
|
|
@ -18,6 +18,7 @@ use OCP\IConfig;
|
|||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class DefaultThemeTest extends AccessibleThemeTestCase {
|
||||
|
@ -46,6 +47,7 @@ class DefaultThemeTest extends AccessibleThemeTestCase {
|
|||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
|
||||
$this->util = new Util(
|
||||
$this->createMock(ServerVersion::class),
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->createMock(IAppData::class),
|
||||
|
|
|
@ -19,6 +19,7 @@ use OCP\IL10N;
|
|||
use OCP\IRequest;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
|
@ -49,6 +50,7 @@ class DyslexiaFontTest extends TestCase {
|
|||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
|
||||
$util = new Util(
|
||||
$this->createMock(ServerVersion::class),
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->createMock(IAppData::class),
|
||||
|
|
|
@ -18,6 +18,7 @@ use OCP\IConfig;
|
|||
use OCP\IL10N;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class HighContrastThemeTest extends AccessibleThemeTestCase {
|
||||
|
@ -49,6 +50,7 @@ class HighContrastThemeTest extends AccessibleThemeTestCase {
|
|||
$this->appManager = $this->createMock(IAppManager::class);
|
||||
|
||||
$this->util = new Util(
|
||||
$this->createMock(ServerVersion::class),
|
||||
$this->config,
|
||||
$this->appManager,
|
||||
$this->createMock(IAppData::class),
|
||||
|
|
|
@ -13,6 +13,7 @@ use OCP\Files\NotFoundException;
|
|||
use OCP\Files\SimpleFS\ISimpleFile;
|
||||
use OCP\Files\SimpleFS\ISimpleFolder;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
|
@ -30,7 +31,7 @@ class UtilTest extends TestCase {
|
|||
$this->appData = $this->createMock(IAppData::class);
|
||||
$this->appManager = \OCP\Server::get(IAppManager::class);
|
||||
$this->imageManager = $this->createMock(ImageManager::class);
|
||||
$this->util = new Util($this->config, $this->appManager, $this->appData, $this->imageManager);
|
||||
$this->util = new Util($this->createMock(ServerVersion::class), $this->config, $this->appManager, $this->appData, $this->imageManager);
|
||||
}
|
||||
|
||||
public function dataColorContrast() {
|
||||
|
|
|
@ -18,6 +18,7 @@ use OCP\IConfig;
|
|||
use OCP\IGroup;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\Notification\IManager;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
class UpdateAvailableNotifications extends TimedJob {
|
||||
protected $connectionNotifications = [3, 7, 14, 30];
|
||||
|
@ -27,6 +28,7 @@ class UpdateAvailableNotifications extends TimedJob {
|
|||
|
||||
public function __construct(
|
||||
ITimeFactory $timeFactory,
|
||||
protected ServerVersion $serverVersion,
|
||||
protected IConfig $config,
|
||||
protected IAppConfig $appConfig,
|
||||
protected IManager $notificationManager,
|
||||
|
@ -64,7 +66,7 @@ class UpdateAvailableNotifications extends TimedJob {
|
|||
* Check for ownCloud update
|
||||
*/
|
||||
protected function checkCoreUpdate() {
|
||||
if (\in_array($this->getChannel(), ['daily', 'git'], true)) {
|
||||
if (\in_array($this->serverVersion->getChannel(), ['daily', 'git'], true)) {
|
||||
// "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
|
||||
return;
|
||||
}
|
||||
|
@ -220,13 +222,6 @@ class UpdateAvailableNotifications extends TimedJob {
|
|||
$this->notificationManager->markProcessed($notification);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
protected function getChannel(): string {
|
||||
return \OC_Util::getChannel();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $app
|
||||
* @return string|false
|
||||
|
|
|
@ -20,10 +20,12 @@ use OCP\IGroupManager;
|
|||
use OCP\IUser;
|
||||
use OCP\Notification\IManager;
|
||||
use OCP\Notification\INotification;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Test\TestCase;
|
||||
|
||||
class UpdateAvailableNotificationsTest extends TestCase {
|
||||
private ServerVersion $serverVersion;
|
||||
private IConfig|MockObject $config;
|
||||
private IManager|MockObject $notificationManager;
|
||||
private IGroupManager|MockObject $groupManager;
|
||||
|
@ -36,6 +38,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
|
|||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$this->serverVersion = $this->createMock(ServerVersion::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->appConfig = $this->createMock(IAppConfig::class);
|
||||
$this->notificationManager = $this->createMock(IManager::class);
|
||||
|
@ -54,6 +57,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
|
|||
if (empty($methods)) {
|
||||
return new UpdateAvailableNotifications(
|
||||
$this->timeFactory,
|
||||
$this->serverVersion,
|
||||
$this->config,
|
||||
$this->appConfig,
|
||||
$this->notificationManager,
|
||||
|
@ -67,6 +71,7 @@ class UpdateAvailableNotificationsTest extends TestCase {
|
|||
return $this->getMockBuilder(UpdateAvailableNotifications::class)
|
||||
->setConstructorArgs([
|
||||
$this->timeFactory,
|
||||
$this->serverVersion,
|
||||
$this->config,
|
||||
$this->appConfig,
|
||||
$this->notificationManager,
|
||||
|
@ -158,13 +163,12 @@ class UpdateAvailableNotificationsTest extends TestCase {
|
|||
*/
|
||||
public function testCheckCoreUpdate(string $channel, $versionCheck, $version, $readableVersion, $errorDays): void {
|
||||
$job = $this->getJob([
|
||||
'getChannel',
|
||||
'createNotifications',
|
||||
'clearErrorNotifications',
|
||||
'sendErrorNotifications',
|
||||
]);
|
||||
|
||||
$job->expects($this->once())
|
||||
$this->serverVersion->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn($channel);
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ use OCP\AppFramework\OCS\OCSNotFoundException;
|
|||
use OCP\IRequest;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class ConfigAPIController extends OCSController {
|
||||
|
@ -31,6 +32,7 @@ class ConfigAPIController extends OCSController {
|
|||
IUserSession $userSession,
|
||||
IUserManager $userManager,
|
||||
Manager $keyManager,
|
||||
ServerVersion $serverVersion,
|
||||
private Helper $ldapHelper,
|
||||
private LoggerInterface $logger,
|
||||
private ConnectionFactory $connectionFactory,
|
||||
|
@ -41,7 +43,8 @@ class ConfigAPIController extends OCSController {
|
|||
$capabilitiesManager,
|
||||
$userSession,
|
||||
$userManager,
|
||||
$keyManager
|
||||
$keyManager,
|
||||
$serverVersion,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
*/
|
||||
namespace OC\Core\Command;
|
||||
|
||||
use OC_Util;
|
||||
use OCP\Defaults;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Util;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
|
@ -19,6 +19,7 @@ class Status extends Base {
|
|||
public function __construct(
|
||||
private IConfig $config,
|
||||
private Defaults $themingDefaults,
|
||||
private ServerVersion $serverVersion,
|
||||
) {
|
||||
parent::__construct('status');
|
||||
}
|
||||
|
@ -41,8 +42,8 @@ class Status extends Base {
|
|||
$needUpgrade = Util::needUpgrade();
|
||||
$values = [
|
||||
'installed' => $this->config->getSystemValueBool('installed', false),
|
||||
'version' => implode('.', Util::getVersion()),
|
||||
'versionstring' => OC_Util::getVersionString(),
|
||||
'version' => implode('.', $this->serverVersion->getVersion()),
|
||||
'versionstring' => $this->serverVersion->getVersionString(),
|
||||
'edition' => '',
|
||||
'maintenance' => $maintenanceMode,
|
||||
'needsDbUpgrade' => $needUpgrade,
|
||||
|
|
|
@ -27,6 +27,7 @@ use OCP\ISession;
|
|||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
#[OpenAPI(scope: OpenAPI::SCOPE_IGNORE)]
|
||||
class OCJSController extends Controller {
|
||||
|
@ -48,10 +49,12 @@ class OCJSController extends Controller {
|
|||
IInitialStateService $initialStateService,
|
||||
IProvider $tokenProvider,
|
||||
FilenameValidator $filenameValidator,
|
||||
ServerVersion $serverVersion,
|
||||
) {
|
||||
parent::__construct($appName, $request);
|
||||
|
||||
$this->helper = new JSConfigHelper(
|
||||
$serverVersion,
|
||||
$l10nFactory->get('lib'),
|
||||
$defaults,
|
||||
$appManager,
|
||||
|
|
|
@ -16,6 +16,7 @@ use OCP\AppFramework\Http\DataResponse;
|
|||
use OCP\IRequest;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
class OCSController extends \OCP\AppFramework\OCSController {
|
||||
public function __construct(
|
||||
|
@ -25,6 +26,7 @@ class OCSController extends \OCP\AppFramework\OCSController {
|
|||
private IUserSession $userSession,
|
||||
private IUserManager $userManager,
|
||||
private Manager $keyManager,
|
||||
private ServerVersion $serverVersion,
|
||||
) {
|
||||
parent::__construct($appName, $request);
|
||||
}
|
||||
|
@ -55,12 +57,11 @@ class OCSController extends \OCP\AppFramework\OCSController {
|
|||
#[ApiRoute(verb: 'GET', url: '/capabilities', root: '/cloud')]
|
||||
public function getCapabilities(): DataResponse {
|
||||
$result = [];
|
||||
[$major, $minor, $micro] = \OCP\Util::getVersion();
|
||||
$result['version'] = [
|
||||
'major' => (int)$major,
|
||||
'minor' => (int)$minor,
|
||||
'micro' => (int)$micro,
|
||||
'string' => \OC_Util::getVersionString(),
|
||||
'major' => $this->serverVersion->getMajorVersion(),
|
||||
'minor' => $this->serverVersion->getMinorVersion(),
|
||||
'micro' => $this->serverVersion->getPatchVersion(),
|
||||
'string' => $this->serverVersion->getVersionString(),
|
||||
'edition' => '',
|
||||
'extendedSupport' => \OCP\Util::hasExtendedSupport()
|
||||
];
|
||||
|
|
|
@ -19,6 +19,7 @@ use OCP\IRequest;
|
|||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
class WhatsNewController extends OCSController {
|
||||
public function __construct(
|
||||
|
@ -28,12 +29,13 @@ class WhatsNewController extends OCSController {
|
|||
private IUserSession $userSession,
|
||||
IUserManager $userManager,
|
||||
Manager $keyManager,
|
||||
ServerVersion $serverVersion,
|
||||
private IConfig $config,
|
||||
private ChangesCheck $whatsNewService,
|
||||
private IFactory $langFactory,
|
||||
private Defaults $defaults,
|
||||
) {
|
||||
parent::__construct($appName, $request, $capabilitiesManager, $userSession, $userManager, $keyManager);
|
||||
parent::__construct($appName, $request, $capabilitiesManager, $userSession, $userManager, $keyManager, $serverVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -91,6 +91,7 @@ if (\OCP\Util::needUpgrade()) {
|
|||
|
||||
$config = Server::get(IConfig::class);
|
||||
$updater = new \OC\Updater(
|
||||
Server::get(\OCP\ServerVersion::class),
|
||||
$config,
|
||||
Server::get(IAppConfig::class),
|
||||
\OC::$server->getIntegrityCodeChecker(),
|
||||
|
|
|
@ -292,10 +292,12 @@ class OC {
|
|||
http_response_code(503);
|
||||
header('Retry-After: 120');
|
||||
|
||||
$serverVersion = \OCP\Server::get(\OCP\ServerVersion::class);
|
||||
|
||||
// render error page
|
||||
$template = new OC_Template('', 'update.use-cli', 'guest');
|
||||
$template->assign('productName', 'nextcloud'); // for now
|
||||
$template->assign('version', OC_Util::getVersionString());
|
||||
$template->assign('version', $serverVersion->getVersionString());
|
||||
$template->assign('tooBig', $tooBig);
|
||||
$template->assign('cliUpgradeLink', $cliUpgradeLink);
|
||||
|
||||
|
@ -321,7 +323,7 @@ class OC {
|
|||
$appManager = Server::get(\OCP\App\IAppManager::class);
|
||||
|
||||
$tmpl = new OC_Template('', 'update.admin', 'guest');
|
||||
$tmpl->assign('version', OC_Util::getVersionString());
|
||||
$tmpl->assign('version', \OCP\Server::get(\OCP\ServerVersion::class)->getVersionString());
|
||||
$tmpl->assign('isAppsOnlyUpgrade', $isAppsOnlyUpgrade);
|
||||
|
||||
// get third party apps
|
||||
|
@ -663,7 +665,7 @@ class OC {
|
|||
if (!function_exists('simplexml_load_file')) {
|
||||
throw new \OCP\HintException('The PHP SimpleXML/PHP-XML extension is not installed.', 'Install the extension or make sure it is enabled.');
|
||||
}
|
||||
|
||||
|
||||
OC_App::loadApps(['session']);
|
||||
if (!self::$CLI) {
|
||||
self::initSession();
|
||||
|
|
|
@ -688,6 +688,7 @@ return array(
|
|||
'OCP\\Security\\VerificationToken\\IVerificationToken' => $baseDir . '/lib/public/Security/VerificationToken/IVerificationToken.php',
|
||||
'OCP\\Security\\VerificationToken\\InvalidTokenException' => $baseDir . '/lib/public/Security/VerificationToken/InvalidTokenException.php',
|
||||
'OCP\\Server' => $baseDir . '/lib/public/Server.php',
|
||||
'OCP\\ServerVersion' => $baseDir . '/lib/public/ServerVersion.php',
|
||||
'OCP\\Session\\Exceptions\\SessionNotAvailableException' => $baseDir . '/lib/public/Session/Exceptions/SessionNotAvailableException.php',
|
||||
'OCP\\Settings\\DeclarativeSettingsTypes' => $baseDir . '/lib/public/Settings/DeclarativeSettingsTypes.php',
|
||||
'OCP\\Settings\\Events\\DeclarativeSettingsGetValueEvent' => $baseDir . '/lib/public/Settings/Events/DeclarativeSettingsGetValueEvent.php',
|
||||
|
|
|
@ -721,6 +721,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
|
|||
'OCP\\Security\\VerificationToken\\IVerificationToken' => __DIR__ . '/../../..' . '/lib/public/Security/VerificationToken/IVerificationToken.php',
|
||||
'OCP\\Security\\VerificationToken\\InvalidTokenException' => __DIR__ . '/../../..' . '/lib/public/Security/VerificationToken/InvalidTokenException.php',
|
||||
'OCP\\Server' => __DIR__ . '/../../..' . '/lib/public/Server.php',
|
||||
'OCP\\ServerVersion' => __DIR__ . '/../../..' . '/lib/public/ServerVersion.php',
|
||||
'OCP\\Session\\Exceptions\\SessionNotAvailableException' => __DIR__ . '/../../..' . '/lib/public/Session/Exceptions/SessionNotAvailableException.php',
|
||||
'OCP\\Settings\\DeclarativeSettingsTypes' => __DIR__ . '/../../..' . '/lib/public/Settings/DeclarativeSettingsTypes.php',
|
||||
'OCP\\Settings\\Events\\DeclarativeSettingsGetValueEvent' => __DIR__ . '/../../..' . '/lib/public/Settings/Events/DeclarativeSettingsGetValueEvent.php',
|
||||
|
|
|
@ -13,6 +13,8 @@ use OCP\Files\IAppData;
|
|||
use OCP\Files\NotFoundException;
|
||||
use OCP\Http\Client\IClientService;
|
||||
use OCP\IConfig;
|
||||
use OCP\Server;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Support\Subscription\IRegistry;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
@ -207,7 +209,7 @@ abstract class Fetcher {
|
|||
*/
|
||||
protected function getChannel() {
|
||||
if ($this->channel === null) {
|
||||
$this->channel = \OC_Util::getChannel();
|
||||
$this->channel = Server::get(ServerVersion::class)->getChannel();
|
||||
}
|
||||
return $this->channel;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ use OCP\EventDispatcher\IEventDispatcher;
|
|||
use OCP\IConfig;
|
||||
use OCP\IRequest;
|
||||
use OCP\Server;
|
||||
use OCP\ServerVersion;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Console\Application as SymfonyApplication;
|
||||
|
@ -31,6 +32,7 @@ class Application {
|
|||
private SymfonyApplication $application;
|
||||
|
||||
public function __construct(
|
||||
ServerVersion $serverVersion,
|
||||
private IConfig $config,
|
||||
private IEventDispatcher $dispatcher,
|
||||
private IRequest $request,
|
||||
|
@ -39,7 +41,7 @@ class Application {
|
|||
private IAppManager $appManager,
|
||||
private Defaults $defaults,
|
||||
) {
|
||||
$this->application = new SymfonyApplication($defaults->getName(), \OC_Util::getVersionString());
|
||||
$this->application = new SymfonyApplication($defaults->getName(), $serverVersion->getVersionString());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -21,6 +21,7 @@ use OCP\IAppConfig;
|
|||
use OCP\ICache;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use phpseclib\Crypt\RSA;
|
||||
use phpseclib\File\X509;
|
||||
|
||||
|
@ -40,6 +41,7 @@ class Checker {
|
|||
private ICache $cache;
|
||||
|
||||
public function __construct(
|
||||
private ServerVersion $serverVersion,
|
||||
private EnvironmentHelper $environmentHelper,
|
||||
private FileAccessHelper $fileAccessHelper,
|
||||
private AppLocator $appLocator,
|
||||
|
@ -59,7 +61,7 @@ class Checker {
|
|||
*/
|
||||
public function isCodeCheckEnforced(): bool {
|
||||
$notSignedChannels = [ '', 'git'];
|
||||
if (\in_array($this->environmentHelper->getChannel(), $notSignedChannels, true)) {
|
||||
if (\in_array($this->serverVersion->getChannel(), $notSignedChannels, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -23,13 +23,4 @@ class EnvironmentHelper {
|
|||
public function getServerRoot(): string {
|
||||
return rtrim(\OC::$SERVERROOT, '/');
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides \OC_Util::getChannel()
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getChannel(): string {
|
||||
return \OC_Util::getChannel();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -216,6 +216,7 @@ use OCP\Security\ISecureRandom;
|
|||
use OCP\Security\ITrustedDomainHelper;
|
||||
use OCP\Security\RateLimiting\ILimiter;
|
||||
use OCP\Security\VerificationToken\IVerificationToken;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Settings\IDeclarativeManager;
|
||||
use OCP\SetupCheck\ISetupCheckManager;
|
||||
use OCP\Share\IProviderFactory;
|
||||
|
@ -593,10 +594,12 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
);
|
||||
/** @var SystemConfig $config */
|
||||
$config = $c->get(SystemConfig::class);
|
||||
/** @var ServerVersion $serverVersion */
|
||||
$serverVersion = $c->get(ServerVersion::class);
|
||||
|
||||
if ($config->getValue('installed', false) && !(defined('PHPUNIT_RUN') && PHPUNIT_RUN)) {
|
||||
$logQuery = $config->getValue('log_query');
|
||||
$prefixClosure = function () use ($logQuery) {
|
||||
$prefixClosure = function () use ($logQuery, $serverVersion) {
|
||||
if (!$logQuery) {
|
||||
try {
|
||||
$v = \OC_App::getAppVersions();
|
||||
|
@ -613,7 +616,7 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
'log_query' => 'enabled',
|
||||
];
|
||||
}
|
||||
$v['core'] = implode(',', \OC_Util::getVersion());
|
||||
$v['core'] = implode(',', $serverVersion->getVersion());
|
||||
$version = implode(',', $v);
|
||||
$instanceId = \OC_Util::getInstanceId();
|
||||
$path = \OC::$SERVERROOT;
|
||||
|
@ -865,7 +868,8 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
$appManager = $c->get(IAppManager::class);
|
||||
|
||||
return new Checker(
|
||||
new EnvironmentHelper(),
|
||||
$c->get(ServerVersion::class),
|
||||
$c->get(EnvironmentHelper::class),
|
||||
new FileAccessHelper(),
|
||||
new AppLocator(),
|
||||
$config,
|
||||
|
@ -1056,7 +1060,7 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
$c->get(IUserSession::class),
|
||||
$c->get(IURLGenerator::class),
|
||||
$c->get(ICacheFactory::class),
|
||||
new Util($c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager),
|
||||
new Util($c->get(ServerVersion::class), $c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager),
|
||||
$imageManager,
|
||||
$c->get(IAppManager::class),
|
||||
$c->get(INavigationManager::class),
|
||||
|
|
|
@ -32,6 +32,7 @@ use OCP\L10N\IFactory as IL10NFactory;
|
|||
use OCP\Migration\IOutput;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\Server;
|
||||
use OCP\ServerVersion;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class Setup {
|
||||
|
@ -380,7 +381,7 @@ class Setup {
|
|||
unlink(\OC::$configDir . '/CAN_INSTALL');
|
||||
}
|
||||
|
||||
$bootstrapCoordinator = \OCP\Server::get(\OC\AppFramework\Bootstrap\Coordinator::class);
|
||||
$bootstrapCoordinator = Server::get(\OC\AppFramework\Bootstrap\Coordinator::class);
|
||||
$bootstrapCoordinator->runInitialRegistration();
|
||||
|
||||
// Create a session token for the newly created user
|
||||
|
@ -561,7 +562,7 @@ class Setup {
|
|||
}
|
||||
|
||||
public function shouldRemoveCanInstallFile(): bool {
|
||||
return \OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL');
|
||||
return Server::get(ServerVersion::class)->getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL');
|
||||
}
|
||||
|
||||
public function canInstallFileExists(): bool {
|
||||
|
|
|
@ -30,6 +30,7 @@ use OCP\ILogger;
|
|||
use OCP\ISession;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUser;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Session\Exceptions\SessionNotAvailableException;
|
||||
use OCP\Share\IManager as IShareManager;
|
||||
use OCP\User\Backend\IPasswordConfirmationBackend;
|
||||
|
@ -41,6 +42,7 @@ class JSConfigHelper {
|
|||
private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
|
||||
|
||||
public function __construct(
|
||||
protected ServerVersion $serverVersion,
|
||||
protected IL10N $l,
|
||||
protected Defaults $defaults,
|
||||
protected IAppManager $appManager,
|
||||
|
@ -53,7 +55,7 @@ class JSConfigHelper {
|
|||
protected CapabilitiesManager $capabilitiesManager,
|
||||
protected IInitialStateService $initialStateService,
|
||||
protected IProvider $tokenProvider,
|
||||
protected FilenameValidator $filenameValidator,
|
||||
protected FilenameValidator $filenameValidator,
|
||||
) {
|
||||
}
|
||||
|
||||
|
@ -154,8 +156,8 @@ class JSConfigHelper {
|
|||
'session_lifetime' => min($this->config->getSystemValue('session_lifetime', $this->iniWrapper->getNumeric('session.gc_maxlifetime')), $this->iniWrapper->getNumeric('session.gc_maxlifetime')),
|
||||
'sharing.maxAutocompleteResults' => max(0, $this->config->getSystemValueInt('sharing.maxAutocompleteResults', Constants::SHARING_MAX_AUTOCOMPLETE_RESULTS_DEFAULT)),
|
||||
'sharing.minSearchStringLength' => $this->config->getSystemValueInt('sharing.minSearchStringLength', 0),
|
||||
'version' => implode('.', Util::getVersion()),
|
||||
'versionstring' => \OC_Util::getVersionString(),
|
||||
'version' => implode('.', $this->serverVersion->getVersion()),
|
||||
'versionstring' => $this->serverVersion->getVersionString(),
|
||||
'enable_non-accessible_features' => $this->config->getSystemValueBool('enable_non-accessible_features', true),
|
||||
];
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ use OCP\IRequest;
|
|||
use OCP\IURLGenerator;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Support\Subscription\IRegistry;
|
||||
use OCP\Util;
|
||||
|
||||
|
@ -218,6 +219,7 @@ class TemplateLayout extends \OC_Template {
|
|||
// this is on purpose outside of the if statement below so that the initial state is prefilled (done in the getConfig() call)
|
||||
// see https://github.com/nextcloud/server/pull/22636 for details
|
||||
$jsConfigHelper = new JSConfigHelper(
|
||||
\OCP\Server::get(ServerVersion::class),
|
||||
\OCP\Util::getL10N('lib'),
|
||||
\OCP\Server::get(Defaults::class),
|
||||
\OC::$server->getAppManager(),
|
||||
|
|
|
@ -31,6 +31,7 @@ use OCP\HintException;
|
|||
use OCP\IAppConfig;
|
||||
use OCP\IConfig;
|
||||
use OCP\ILogger;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
|
@ -53,6 +54,7 @@ class Updater extends BasicEmitter {
|
|||
];
|
||||
|
||||
public function __construct(
|
||||
private ServerVersion $serverVersion,
|
||||
private IConfig $config,
|
||||
private IAppConfig $appConfig,
|
||||
private Checker $checker,
|
||||
|
@ -82,14 +84,14 @@ class Updater extends BasicEmitter {
|
|||
}
|
||||
|
||||
// Clear CAN_INSTALL file if not on git
|
||||
if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL')) {
|
||||
if ($this->serverVersion->getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL')) {
|
||||
if (!unlink(\OC::$configDir . '/CAN_INSTALL')) {
|
||||
$this->log->error('Could not cleanup CAN_INSTALL from your config folder. Please remove this file manually.');
|
||||
}
|
||||
}
|
||||
|
||||
$installedVersion = $this->config->getSystemValueString('version', '0.0.0');
|
||||
$currentVersion = implode('.', \OCP\Util::getVersion());
|
||||
$currentVersion = implode('.', $this->serverVersion->getVersion());
|
||||
|
||||
$this->log->debug('starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, ['app' => 'core']);
|
||||
|
||||
|
|
|
@ -11,12 +11,14 @@ use OCP\Http\Client\IClientService;
|
|||
use OCP\IAppConfig;
|
||||
use OCP\IConfig;
|
||||
use OCP\IUserManager;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Support\Subscription\IRegistry;
|
||||
use OCP\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class VersionCheck {
|
||||
public function __construct(
|
||||
private ServerVersion $serverVersion,
|
||||
private IClientService $clientService,
|
||||
private IConfig $config,
|
||||
private IAppConfig $appConfig,
|
||||
|
@ -54,9 +56,9 @@ class VersionCheck {
|
|||
$version = Util::getVersion();
|
||||
$version['installed'] = $this->config->getAppValue('core', 'installedat');
|
||||
$version['updated'] = $this->appConfig->getValueInt('core', 'lastupdatedat');
|
||||
$version['updatechannel'] = \OC_Util::getChannel();
|
||||
$version['updatechannel'] = $this->serverVersion->getChannel();
|
||||
$version['edition'] = '';
|
||||
$version['build'] = \OC_Util::getBuild();
|
||||
$version['build'] = $this->serverVersion->getBuild();
|
||||
$version['php_major'] = PHP_MAJOR_VERSION;
|
||||
$version['php_minor'] = PHP_MINOR_VERSION;
|
||||
$version['php_release'] = PHP_RELEASE_VERSION;
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
use OCP\IConfig;
|
||||
use OCP\Server;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
class OC_Defaults {
|
||||
private $theme;
|
||||
|
||||
|
@ -27,7 +31,8 @@ class OC_Defaults {
|
|||
private $defaultProductName;
|
||||
|
||||
public function __construct() {
|
||||
$config = \OC::$server->getConfig();
|
||||
$config = Server::get(IConfig::class);
|
||||
$serverVersion = Server::get(ServerVersion::class);
|
||||
|
||||
$this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */
|
||||
$this->defaultName = 'Nextcloud'; /* short name, used when referring to the software */
|
||||
|
@ -39,7 +44,7 @@ class OC_Defaults {
|
|||
$this->defaultAndroidClientUrl = $config->getSystemValue('customclient_android', 'https://play.google.com/store/apps/details?id=com.nextcloud.client');
|
||||
$this->defaultFDroidClientUrl = $config->getSystemValue('customclient_fdroid', 'https://f-droid.org/packages/com.nextcloud.client/');
|
||||
$this->defaultDocBaseUrl = 'https://docs.nextcloud.com';
|
||||
$this->defaultDocVersion = \OC_Util::getVersion()[0]; // used to generate doc links
|
||||
$this->defaultDocVersion = $serverVersion->getMajorVersion(); // used to generate doc links
|
||||
$this->defaultColorBackground = '#00679e';
|
||||
$this->defaultColorPrimary = '#00679e';
|
||||
$this->defaultTextColorPrimary = '#ffffff';
|
||||
|
|
|
@ -215,76 +215,6 @@ class OC_Util {
|
|||
$setupManager->tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* get the current installed version of ownCloud
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getVersion() {
|
||||
OC_Util::loadVersion();
|
||||
return self::$versionCache['OC_Version'];
|
||||
}
|
||||
|
||||
/**
|
||||
* get the current installed version string of ownCloud
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getVersionString() {
|
||||
OC_Util::loadVersion();
|
||||
return self::$versionCache['OC_VersionString'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated 11.0.0 the value is of no use anymore
|
||||
* @return string
|
||||
*/
|
||||
public static function getEditionString() {
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get the update channel of the current installed of ownCloud.
|
||||
* @return string
|
||||
*/
|
||||
public static function getChannel() {
|
||||
OC_Util::loadVersion();
|
||||
return \OC::$server->getConfig()->getSystemValueString('updater.release.channel', self::$versionCache['OC_Channel']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get the build number of the current installed of ownCloud.
|
||||
* @return string
|
||||
*/
|
||||
public static function getBuild() {
|
||||
OC_Util::loadVersion();
|
||||
return self::$versionCache['OC_Build'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @description load the version.php into the session as cache
|
||||
* @suppress PhanUndeclaredVariable
|
||||
*/
|
||||
private static function loadVersion() {
|
||||
if (self::$versionCache !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$timestamp = filemtime(OC::$SERVERROOT . '/version.php');
|
||||
require OC::$SERVERROOT . '/version.php';
|
||||
/** @var int $timestamp */
|
||||
self::$versionCache['OC_Version_Timestamp'] = $timestamp;
|
||||
/** @var string $OC_Version */
|
||||
self::$versionCache['OC_Version'] = $OC_Version;
|
||||
/** @var string $OC_VersionString */
|
||||
self::$versionCache['OC_VersionString'] = $OC_VersionString;
|
||||
/** @var string $OC_Build */
|
||||
self::$versionCache['OC_Build'] = $OC_Build;
|
||||
|
||||
/** @var string $OC_Channel */
|
||||
self::$versionCache['OC_Channel'] = $OC_Channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* generates a path for JS/CSS files. If no application is provided it will create the path for core.
|
||||
*
|
||||
|
@ -1021,20 +951,6 @@ class OC_Util {
|
|||
return $normalizedValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* A human readable string is generated based on version and build number
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getHumanVersion() {
|
||||
$version = OC_Util::getVersionString();
|
||||
$build = OC_Util::getBuild();
|
||||
if (!empty($build) and OC_Util::getChannel() === 'daily') {
|
||||
$version .= ' Build:' . $build;
|
||||
}
|
||||
return $version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the instance needs to perform an upgrade,
|
||||
* either when the core version is higher or any app requires
|
||||
|
|
102
lib/public/ServerVersion.php
Normal file
102
lib/public/ServerVersion.php
Normal file
|
@ -0,0 +1,102 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
namespace OCP;
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
class ServerVersion {
|
||||
|
||||
private array $version;
|
||||
private string $versionString;
|
||||
private string $build;
|
||||
/** @var 'beta'|'stable'|'enterprise'|'git' */
|
||||
private string $channel;
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function __construct() {
|
||||
$versionFile = __DIR__ . '/../../version.php';
|
||||
require $versionFile;
|
||||
|
||||
/** @var int[] $OC_Version */
|
||||
$this->version = $OC_Version;
|
||||
/** @var string $OC_VersionString */
|
||||
$this->versionString = $OC_VersionString;
|
||||
/** @var string $OC_Build */
|
||||
$this->build = $OC_Build;
|
||||
/** @var string $OC_Channel */
|
||||
$this->channel = $OC_Channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getMajorVersion(): int {
|
||||
return $this->version[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getMinorVersion(): int {
|
||||
return $this->version[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getPatchVersion(): int {
|
||||
return $this->version[2];
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getVersion(): array {
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getVersionString(): string {
|
||||
return $this->versionString;
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-return 'beta'|'stable'|'enterprise'|'git'
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getChannel(): string {
|
||||
return $this->channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getBuild(): string {
|
||||
return $this->build;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getHumanVersion(): string {
|
||||
$version = $this->getVersionString();
|
||||
$build = $this->getBuild();
|
||||
if (!empty($build) && $this->getChannel() === 'daily') {
|
||||
$version .= ' Build:' . $build;
|
||||
}
|
||||
return $version;
|
||||
|
||||
}
|
||||
}
|
|
@ -35,9 +35,10 @@ class Util {
|
|||
* get the current installed version of Nextcloud
|
||||
* @return array
|
||||
* @since 4.0.0
|
||||
* @deprecated 31.0.0 Use \OCP\ServerVersion::getVersion
|
||||
*/
|
||||
public static function getVersion() {
|
||||
return \OC_Util::getVersion();
|
||||
return Server::get(ServerVersion::class)->getVersion();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,7 +47,7 @@ class Util {
|
|||
public static function hasExtendedSupport(): bool {
|
||||
try {
|
||||
/** @var \OCP\Support\Subscription\IRegistry */
|
||||
$subscriptionRegistry = \OCP\Server::get(\OCP\Support\Subscription\IRegistry::class);
|
||||
$subscriptionRegistry = Server::get(\OCP\Support\Subscription\IRegistry::class);
|
||||
return $subscriptionRegistry->delegateHasExtendedSupport();
|
||||
} catch (ContainerExceptionInterface $e) {
|
||||
}
|
||||
|
@ -66,9 +67,10 @@ class Util {
|
|||
* Get current update channel
|
||||
* @return string
|
||||
* @since 8.1.0
|
||||
* @deprecated 31.0.0 Use \OCP\ServerVersion::getChannel
|
||||
*/
|
||||
public static function getChannel() {
|
||||
return \OC_Util::getChannel();
|
||||
return \OCP\Server::get(ServerVersion::class)->getChannel();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -567,7 +569,7 @@ class Util {
|
|||
if (!function_exists($functionName)) {
|
||||
return false;
|
||||
}
|
||||
$ini = \OCP\Server::get(IniGetWrapper::class);
|
||||
$ini = Server::get(IniGetWrapper::class);
|
||||
$disabled = explode(',', $ini->get('disable_functions') ?: '');
|
||||
$disabled = array_map('trim', $disabled);
|
||||
if (in_array($functionName, $disabled)) {
|
||||
|
|
|
@ -24,7 +24,7 @@ try {
|
|||
'maintenance' => $maintenance,
|
||||
'needsDbUpgrade' => \OCP\Util::needUpgrade(),
|
||||
'version' => implode('.', \OCP\Util::getVersion()),
|
||||
'versionstring' => OC_Util::getVersionString(),
|
||||
'versionstring' => \OCP\Server::get(\OCP\ServerVersion::class)->getVersionString(),
|
||||
'edition' => '',
|
||||
'productname' => $defaults->getProductName(),
|
||||
'extendedSupport' => \OCP\Util::hasExtendedSupport()
|
||||
|
|
|
@ -15,6 +15,7 @@ use OCP\IRequest;
|
|||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\ServerVersion;
|
||||
use Test\TestCase;
|
||||
|
||||
class OCSControllerTest extends TestCase {
|
||||
|
@ -28,6 +29,8 @@ class OCSControllerTest extends TestCase {
|
|||
private $userManager;
|
||||
/** @var Manager|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $keyManager;
|
||||
/** @var ServerVersion|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $serverVersion;
|
||||
/** @var OCSController */
|
||||
private $controller;
|
||||
|
||||
|
@ -39,6 +42,7 @@ class OCSControllerTest extends TestCase {
|
|||
$this->userSession = $this->createMock(IUserSession::class);
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->keyManager = $this->createMock(Manager::class);
|
||||
$serverVersion = \OCP\Server::get(ServerVersion::class);
|
||||
|
||||
$this->controller = new OCSController(
|
||||
'core',
|
||||
|
@ -46,7 +50,8 @@ class OCSControllerTest extends TestCase {
|
|||
$this->capabilitiesManager,
|
||||
$this->userSession,
|
||||
$this->userManager,
|
||||
$this->keyManager
|
||||
$this->keyManager,
|
||||
$serverVersion
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -72,14 +77,15 @@ class OCSControllerTest extends TestCase {
|
|||
$this->userSession->expects($this->once())
|
||||
->method('isLoggedIn')
|
||||
->willReturn(true);
|
||||
[$major, $minor, $micro] = \OCP\Util::getVersion();
|
||||
|
||||
$serverVersion = \OCP\Server::get(ServerVersion::class);
|
||||
|
||||
$result = [];
|
||||
$result['version'] = [
|
||||
'major' => $major,
|
||||
'minor' => $minor,
|
||||
'micro' => $micro,
|
||||
'string' => \OC_Util::getVersionString(),
|
||||
'major' => $serverVersion->getMajorVersion(),
|
||||
'minor' => $serverVersion->getMinorVersion(),
|
||||
'micro' => $serverVersion->getPatchVersion(),
|
||||
'string' => $serverVersion->getVersionString(),
|
||||
'edition' => '',
|
||||
'extendedSupport' => false
|
||||
];
|
||||
|
@ -105,14 +111,14 @@ class OCSControllerTest extends TestCase {
|
|||
$this->userSession->expects($this->once())
|
||||
->method('isLoggedIn')
|
||||
->willReturn(false);
|
||||
[$major, $minor, $micro] = \OCP\Util::getVersion();
|
||||
$serverVersion = \OCP\Server::get(ServerVersion::class);
|
||||
|
||||
$result = [];
|
||||
$result['version'] = [
|
||||
'major' => $major,
|
||||
'minor' => $minor,
|
||||
'micro' => $micro,
|
||||
'string' => \OC_Util::getVersionString(),
|
||||
'major' => $serverVersion->getMajorVersion(),
|
||||
'minor' => $serverVersion->getMinorVersion(),
|
||||
'micro' => $serverVersion->getPatchVersion(),
|
||||
'string' => $serverVersion->getVersionString(),
|
||||
'edition' => '',
|
||||
'extendedSupport' => false
|
||||
];
|
||||
|
|
|
@ -17,11 +17,14 @@ use OCP\App\IAppManager;
|
|||
use OCP\IAppConfig;
|
||||
use OCP\ICacheFactory;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use phpseclib\Crypt\RSA;
|
||||
use phpseclib\File\X509;
|
||||
use Test\TestCase;
|
||||
|
||||
class CheckerTest extends TestCase {
|
||||
/** @var ServerVersion|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $serverVersion;
|
||||
/** @var EnvironmentHelper|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $environmentHelper;
|
||||
/** @var AppLocator|\PHPUnit\Framework\MockObject\MockObject */
|
||||
|
@ -43,6 +46,7 @@ class CheckerTest extends TestCase {
|
|||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->serverVersion = $this->createMock(ServerVersion::class);
|
||||
$this->environmentHelper = $this->createMock(EnvironmentHelper::class);
|
||||
$this->fileAccessHelper = $this->createMock(FileAccessHelper::class);
|
||||
$this->appLocator = $this->createMock(AppLocator::class);
|
||||
|
@ -62,6 +66,7 @@ class CheckerTest extends TestCase {
|
|||
->willReturn(new NullCache());
|
||||
|
||||
$this->checker = new Checker(
|
||||
$this->serverVersion,
|
||||
$this->environmentHelper,
|
||||
$this->fileAccessHelper,
|
||||
$this->appLocator,
|
||||
|
@ -149,7 +154,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithoutSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -169,7 +174,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithValidSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -208,7 +213,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithTamperedSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -253,7 +258,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithTamperedFiles(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -314,7 +319,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithTamperedFilesAndAlternatePath(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -374,7 +379,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppWithDifferentScope(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -418,7 +423,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppWithDifferentScopeAndAlwaysTrustedCore(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -639,7 +644,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithoutSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -659,7 +664,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithValidSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -696,7 +701,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithValidModifiedHtaccessSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -759,7 +764,7 @@ class CheckerTest extends TestCase {
|
|||
// occ integrity:sign-core --privateKey=./tests/data/integritycheck/core.key --certificate=./tests/data/integritycheck/core.crt --path=./tests/data/integritycheck/mimetypeListModified
|
||||
self::assertEquals($newFile, file_get_contents(\OC::$SERVERROOT . '/tests/data/integritycheck/mimetypeListModified/core/js/mimetypelist.js'));
|
||||
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -786,7 +791,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithValidSignatureDataAndNotAlphabeticOrder(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -823,7 +828,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithTamperedSignatureData(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -866,7 +871,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreSignatureWithTamperedFiles(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -924,7 +929,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreWithInvalidCertificate(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -967,7 +972,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyCoreWithDifferentScope(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -1012,6 +1017,7 @@ class CheckerTest extends TestCase {
|
|||
public function testRunInstanceVerification(): void {
|
||||
$this->checker = $this->getMockBuilder('\OC\IntegrityCheck\Checker')
|
||||
->setConstructorArgs([
|
||||
$this->serverVersion,
|
||||
$this->environmentHelper,
|
||||
$this->fileAccessHelper,
|
||||
$this->appLocator,
|
||||
|
@ -1090,7 +1096,7 @@ class CheckerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testVerifyAppSignatureWithoutSignatureDataAndCodeCheckerDisabled(): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn('stable');
|
||||
|
@ -1120,7 +1126,7 @@ class CheckerTest extends TestCase {
|
|||
* @dataProvider channelDataProvider
|
||||
*/
|
||||
public function testIsCodeCheckEnforced($channel, $isCodeSigningEnforced): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn($channel);
|
||||
|
@ -1138,7 +1144,7 @@ class CheckerTest extends TestCase {
|
|||
* @dataProvider channelDataProvider
|
||||
*/
|
||||
public function testIsCodeCheckEnforcedWithDisabledConfigSwitch($channel): void {
|
||||
$this->environmentHelper
|
||||
$this->serverVersion
|
||||
->expects($this->once())
|
||||
->method('getChannel')
|
||||
->willReturn($channel);
|
||||
|
|
|
@ -22,8 +22,4 @@ class EnvironmentHelperTest extends TestCase {
|
|||
public function testGetServerRoot(): void {
|
||||
$this->assertSame(\OC::$SERVERROOT, $this->environmentHelper->getServerRoot());
|
||||
}
|
||||
|
||||
public function testGetChannel(): void {
|
||||
$this->assertSame(\OC_Util::getChannel(), $this->environmentHelper->getChannel());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2018-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
namespace Test\PublicNamespace;
|
||||
|
||||
class UtilTest extends \Test\TestCase {
|
||||
/**
|
||||
* @dataProvider channelProvider
|
||||
*
|
||||
* @param string $channel
|
||||
*/
|
||||
public function testOverrideChannel($channel): void {
|
||||
\OCP\Util::setChannel($channel);
|
||||
$actual = \OCP\Util::getChannel($channel);
|
||||
$this->assertEquals($channel, $actual);
|
||||
}
|
||||
|
||||
public function channelProvider() {
|
||||
return [
|
||||
['daily'],
|
||||
['beta'],
|
||||
['stable'],
|
||||
['production']
|
||||
];
|
||||
}
|
||||
}
|
|
@ -12,11 +12,13 @@ use OCP\Http\Client\IClientService;
|
|||
use OCP\IAppConfig;
|
||||
use OCP\IConfig;
|
||||
use OCP\IUserManager;
|
||||
use OCP\ServerVersion;
|
||||
use OCP\Support\Subscription\IRegistry;
|
||||
use OCP\Util;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class VersionCheckTest extends \Test\TestCase {
|
||||
/** @var ServerVersion|\PHPUnit\Framework\MockObject\MockObject */
|
||||
private $serverVersion;
|
||||
/** @var IConfig| \PHPUnit\Framework\MockObject\MockObject */
|
||||
private $config;
|
||||
/** @var IAppConfig| \PHPUnit\Framework\MockObject\MockObject */
|
||||
|
@ -30,15 +32,12 @@ class VersionCheckTest extends \Test\TestCase {
|
|||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->config = $this->getMockBuilder(IConfig::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->appConfig = $this->getMockBuilder(IAppConfig::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$clientService = $this->getMockBuilder(IClientService::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->serverVersion = $this->createMock(ServerVersion::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->appConfig = $this->createMock(IAppConfig::class);
|
||||
$clientService = $this->createMock(IClientService::class);
|
||||
|
||||
$this->serverVersion->method('getChannel')->willReturn('git');
|
||||
|
||||
$this->registry = $this->createMock(IRegistry::class);
|
||||
$this->registry
|
||||
|
@ -48,6 +47,7 @@ class VersionCheckTest extends \Test\TestCase {
|
|||
$this->updater = $this->getMockBuilder(VersionCheck::class)
|
||||
->setMethods(['getUrlContent'])
|
||||
->setConstructorArgs([
|
||||
$this->serverVersion,
|
||||
$clientService,
|
||||
$this->config,
|
||||
$this->appConfig,
|
||||
|
@ -63,7 +63,8 @@ class VersionCheckTest extends \Test\TestCase {
|
|||
* @return string
|
||||
*/
|
||||
private function buildUpdateUrl($baseUrl) {
|
||||
return $baseUrl . '?version=' . implode('x', Util::getVersion()) . 'xinstalledatx' . time() . 'x' . \OC_Util::getChannel() . 'xxx' . PHP_MAJOR_VERSION . 'x' . PHP_MINOR_VERSION . 'x' . PHP_RELEASE_VERSION . 'x0x0';
|
||||
$serverVersion = \OCP\Server::get(ServerVersion::class);
|
||||
return $baseUrl . '?version=' . implode('x', $serverVersion->getVersion()) . 'xinstalledatx' . time() . 'x' . $serverVersion->getChannel() . 'xxx' . PHP_MAJOR_VERSION . 'x' . PHP_MINOR_VERSION . 'x' . PHP_RELEASE_VERSION . 'x0x0';
|
||||
}
|
||||
|
||||
public function testCheckInCache(): void {
|
||||
|
|
|
@ -12,10 +12,13 @@ use OC\IntegrityCheck\Checker;
|
|||
use OC\Updater;
|
||||
use OCP\IAppConfig;
|
||||
use OCP\IConfig;
|
||||
use OCP\ServerVersion;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class UpdaterTest extends TestCase {
|
||||
/** @var ServerVersion|MockObject */
|
||||
private $serverVersion;
|
||||
/** @var IConfig|MockObject */
|
||||
private $config;
|
||||
/** @var IAppConfig|MockObject */
|
||||
|
@ -31,23 +34,15 @@ class UpdaterTest extends TestCase {
|
|||
|
||||
protected function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->config = $this->getMockBuilder(IConfig::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->appConfig = $this->getMockBuilder(IAppConfig::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->logger = $this->getMockBuilder(LoggerInterface::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->checker = $this->getMockBuilder(Checker::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->installer = $this->getMockBuilder(Installer::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->serverVersion = $this->createMock(ServerVersion::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->appConfig = $this->createMock(IAppConfig::class);
|
||||
$this->logger = $this->createMock(LoggerInterface::class);
|
||||
$this->checker = $this->createMock(Checker::class);
|
||||
$this->installer = $this->createMock(Installer::class);
|
||||
|
||||
$this->updater = new Updater(
|
||||
$this->serverVersion,
|
||||
$this->config,
|
||||
$this->appConfig,
|
||||
$this->checker,
|
||||
|
|
|
@ -24,16 +24,6 @@ class UtilTest extends \Test\TestCase {
|
|||
}
|
||||
}
|
||||
|
||||
public function testGetVersionString(): void {
|
||||
$version = \OC_Util::getVersionString();
|
||||
$this->assertTrue(is_string($version));
|
||||
}
|
||||
|
||||
public function testGetEditionString(): void {
|
||||
$edition = \OC_Util::getEditionString();
|
||||
$this->assertTrue(is_string($edition));
|
||||
}
|
||||
|
||||
public function testSanitizeHTML(): void {
|
||||
$badArray = [
|
||||
'While it is unusual to pass an array',
|
||||
|
|
Loading…
Reference in a new issue