diff options
-rw-r--r-- | apps/cloud_federation_api/lib/Config.php | 39 | ||||
-rw-r--r-- | apps/federatedfilesharing/lib/ocm/CloudFederationProviderFiles.php | 10 | ||||
-rw-r--r-- | lib/public/Federation/ICloudFederationProvider.php | 9 |
3 files changed, 34 insertions, 24 deletions
diff --git a/apps/cloud_federation_api/lib/Config.php b/apps/cloud_federation_api/lib/Config.php index 386f27b199a..7d42960deaf 100644 --- a/apps/cloud_federation_api/lib/Config.php +++ b/apps/cloud_federation_api/lib/Config.php @@ -21,6 +21,7 @@ namespace OCA\CloudFederationAPI; +use OCP\Federation\ICloudFederationProviderManager; use OCP\GlobalScale\IConfig as IGsConfig; use OCP\IConfig; @@ -34,33 +35,23 @@ use OCP\IConfig; */ class Config { - /** @var IGsConfig */ - private $gsConfig; + /** @var ICloudFederationProviderManager */ + private $cloudFederationProviderManager; - /** @var IConfig */ - private $config; - - public function __construct(IGsConfig $globalScaleConfig, IConfig $config) { - $this->gsConfig = $globalScaleConfig; - $this->config = $config; - } - - public function incomingRequestsEnabled() { - if ($this->gsConfig->onlyInternalFederation()) { - return false; - } - $result = $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes'); - return ($result === 'yes'); + public function __construct(ICloudFederationProviderManager $cloudFederationProviderManager) { + $this->cloudFederationProviderManager = $cloudFederationProviderManager; } - public function outgoingRequestsEnabled() { - - if ($this->gsConfig->onlyInternalFederation()) { - return false; - } - $result = $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes'); - return ($result === 'yes'); - + /** + * get a list of supported share types + * + * @param string $resourceType + * @return array + * @throws \OCP\Federation\Exceptions\ProviderDoesNotExistsException + */ + public function getSupportedShareTypes($resourceType) { + $provider = $this->cloudFederationProviderManager->getCloudFederationProvider($resourceType); + return $provider->getSupportedShareTypes(); } } diff --git a/apps/federatedfilesharing/lib/ocm/CloudFederationProviderFiles.php b/apps/federatedfilesharing/lib/ocm/CloudFederationProviderFiles.php index 8191d5065c0..cf40a6381dc 100644 --- a/apps/federatedfilesharing/lib/ocm/CloudFederationProviderFiles.php +++ b/apps/federatedfilesharing/lib/ocm/CloudFederationProviderFiles.php @@ -764,4 +764,14 @@ class CloudFederationProviderFiles implements ICloudFederationProvider { } + /** + * get the supported share types, e.g. "user", "group", etc. + * + * @return array + * + * @since 14.0.0 + */ + public function getSupportedShareTypes() { + return ['user']; + } } diff --git a/lib/public/Federation/ICloudFederationProvider.php b/lib/public/Federation/ICloudFederationProvider.php index 49a2b4bc777..b3574535cb0 100644 --- a/lib/public/Federation/ICloudFederationProvider.php +++ b/lib/public/Federation/ICloudFederationProvider.php @@ -77,4 +77,13 @@ interface ICloudFederationProvider { */ public function notificationReceived($notificationType, $providerId, array $notification); + /** + * get the supported share types, e.g. "user", "group", etc. + * + * @return array + * + * @since 14.0.0 + */ + public function getSupportedShareTypes(); + } |