diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-04-07 18:35:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-07 18:35:13 +0200 |
commit | bdf1a24c2f2ba6348320b85c62b017f37f440609 (patch) | |
tree | 772919cfb3b695ee182ed9663cf82a8a6656d956 | |
parent | f540a69bf8865d549ead301ec0eb43494b5e5d87 (diff) | |
parent | 63052522a2ea349d4d2c6a2c02f0ba97d83f6078 (diff) | |
download | nextcloud-server-bdf1a24c2f2ba6348320b85c62b017f37f440609.tar.gz nextcloud-server-bdf1a24c2f2ba6348320b85c62b017f37f440609.zip |
Merge pull request #51946 from nextcloud/perf/capa
perf(cloud_federation_api): only provide capabilities if needed
-rw-r--r-- | apps/cloud_federation_api/lib/Capabilities.php | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/apps/cloud_federation_api/lib/Capabilities.php b/apps/cloud_federation_api/lib/Capabilities.php index 8957fb8b9d8..0348f6e7c11 100644 --- a/apps/cloud_federation_api/lib/Capabilities.php +++ b/apps/cloud_federation_api/lib/Capabilities.php @@ -12,13 +12,14 @@ use NCU\Security\Signature\Exceptions\IdentityNotFoundException; use NCU\Security\Signature\Exceptions\SignatoryException; use OC\OCM\OCMSignatoryManager; use OCP\Capabilities\ICapability; +use OCP\Capabilities\IInitialStateExcludedCapability; use OCP\IAppConfig; use OCP\IURLGenerator; use OCP\OCM\Exceptions\OCMArgumentException; use OCP\OCM\IOCMProvider; use Psr\Log\LoggerInterface; -class Capabilities implements ICapability { +class Capabilities implements ICapability, IInitialStateExcludedCapability { public const API_VERSION = '1.1'; // informative, real version. public function __construct( @@ -54,15 +55,13 @@ class Capabilities implements ICapability { */ public function getCapabilities() { $url = $this->urlGenerator->linkToRouteAbsolute('cloud_federation_api.requesthandlercontroller.addShare'); - - $this->provider->setEnabled(true); - $this->provider->setApiVersion(self::API_VERSION); - $pos = strrpos($url, '/'); if ($pos === false) { - throw new OCMArgumentException('generated route should contains a slash character'); + throw new OCMArgumentException('generated route should contain a slash character'); } + $this->provider->setEnabled(true); + $this->provider->setApiVersion(self::API_VERSION); $this->provider->setEndPoint(substr($url, 0, $pos)); $resource = $this->provider->createNewResourceType(); @@ -87,6 +86,6 @@ class Capabilities implements ICapability { $this->logger->warning('cannot generate local signatory', ['exception' => $e]); } - return ['ocm' => json_decode(json_encode($this->provider->jsonSerialize()), true)]; + return ['ocm' => $this->provider->jsonSerialize()]; } } |