From 8d4da30bf59ca12a81f13ea93b7fdd6c84cb1c2b Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Wed, 13 Jun 2018 14:46:23 +0200 Subject: [PATCH] add support for different share types Signed-off-by: Bjoern Schiessle --- apps/cloud_federation_api/lib/Config.php | 39 +++++++------------ .../lib/ocm/CloudFederationProviderFiles.php | 10 +++++ .../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 __construct(ICloudFederationProviderManager $cloudFederationProviderManager) { + $this->cloudFederationProviderManager = $cloudFederationProviderManager; } - 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 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(); + }