mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 10:40:40 -04:00
feat: provide server version as capability
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
parent
9fd80b2aa2
commit
6f41f6a050
3 changed files with 14 additions and 3 deletions
|
|
@ -10,6 +10,7 @@ namespace OC\OCS;
|
|||
use OCP\Capabilities\ICapability;
|
||||
use OCP\IConfig;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\ServerVersion;
|
||||
|
||||
/**
|
||||
* Class Capabilities
|
||||
|
|
@ -22,6 +23,7 @@ class CoreCapabilities implements ICapability {
|
|||
*/
|
||||
public function __construct(
|
||||
private IConfig $config,
|
||||
private ServerVersion $serverVersion,
|
||||
) {
|
||||
}
|
||||
|
||||
|
|
@ -35,10 +37,13 @@ class CoreCapabilities implements ICapability {
|
|||
* reference-api: boolean,
|
||||
* reference-regex: string,
|
||||
* mod-rewrite-working: boolean,
|
||||
* version: list{int, int, int, int},
|
||||
* },
|
||||
* }
|
||||
*/
|
||||
public function getCapabilities(): array {
|
||||
/** @var list{int, int, int, int} */
|
||||
$version = $this->serverVersion->getVersion();
|
||||
return [
|
||||
'core' => [
|
||||
'pollinterval' => $this->config->getSystemValueInt('pollinterval', 60),
|
||||
|
|
@ -46,6 +51,7 @@ class CoreCapabilities implements ICapability {
|
|||
'reference-api' => true,
|
||||
'reference-regex' => IURLGenerator::URL_REGEX_NO_MODIFIERS,
|
||||
'mod-rewrite-working' => $this->config->getSystemValueBool('htaccess.IgnoreFrontController') || getenv('front_controller_active') === 'true',
|
||||
'version' => $version,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -973,7 +973,10 @@ class Server extends ServerContainer implements IServerContainer {
|
|||
$this->registerService(CapabilitiesManager::class, function (ContainerInterface $c) {
|
||||
$manager = new CapabilitiesManager($c->get(LoggerInterface::class));
|
||||
$manager->registerCapability(function () use ($c) {
|
||||
return new \OC\OCS\CoreCapabilities($c->get(\OCP\IConfig::class));
|
||||
return new \OC\OCS\CoreCapabilities(
|
||||
$c->get(\OCP\IConfig::class),
|
||||
$c->get(\OCP\ServerVersion::class),
|
||||
);
|
||||
});
|
||||
$manager->registerCapability(function () use ($c) {
|
||||
return $c->get(\OC\Security\Bruteforce\Capabilities::class);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ namespace OCP;
|
|||
*/
|
||||
class ServerVersion {
|
||||
|
||||
/** @var list{int, int, int, int} */
|
||||
private array $version;
|
||||
private string $versionString;
|
||||
private string $build;
|
||||
|
|
@ -27,13 +28,13 @@ class ServerVersion {
|
|||
$versionFile = __DIR__ . '/../../version.php';
|
||||
require $versionFile;
|
||||
|
||||
/** @var int[] $OC_Version */
|
||||
/** @var list{int, int, int, 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 */
|
||||
/** @var 'beta'|'stable'|'enterprise'|'git' $OC_Channel */
|
||||
$this->channel = $OC_Channel;
|
||||
}
|
||||
|
||||
|
|
@ -59,6 +60,7 @@ class ServerVersion {
|
|||
}
|
||||
|
||||
/**
|
||||
* @psalm-return list{int, int, int, int}
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getVersion(): array {
|
||||
|
|
|
|||
Loading…
Reference in a new issue