appManager = $appManager; } /** * Function an app uses to return the capabilities * * @return array{ * provisioning_api: array{ * version: string, * AccountPropertyScopesVersion: int, * AccountPropertyScopesFederatedEnabled: bool, * AccountPropertyScopesPublishedEnabled: bool, * }, * } */ public function getCapabilities() { $federatedScopeEnabled = $this->appManager->isEnabledForUser('federation'); $publishedScopeEnabled = false; $federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing'); if ($federatedFileSharingEnabled) { /** @var FederatedShareProvider $shareProvider */ $shareProvider = \OC::$server->query(FederatedShareProvider::class); $publishedScopeEnabled = $shareProvider->isLookupServerUploadEnabled(); } return [ 'provisioning_api' => [ 'version' => $this->appManager->getAppVersion('provisioning_api'), 'AccountPropertyScopesVersion' => 2, 'AccountPropertyScopesFederatedEnabled' => $federatedScopeEnabled, 'AccountPropertyScopesPublishedEnabled' => $publishedScopeEnabled, ] ]; } }