From 6208f250e88a15794ac5b7eeef6d701aa91e131b Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Wed, 2 May 2018 17:15:07 +0200 Subject: [PATCH] check if cloud federation api is ready Signed-off-by: Bjoern Schiessle --- .../CloudFederationProviderManager.php | 16 +++++++++++++++- lib/private/Server.php | 2 +- .../ICloudFederationProviderManager.php | 9 +++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/private/Federation/CloudFederationProviderManager.php b/lib/private/Federation/CloudFederationProviderManager.php index 925d42a688..73e1dd99c6 100644 --- a/lib/private/Federation/CloudFederationProviderManager.php +++ b/lib/private/Federation/CloudFederationProviderManager.php @@ -22,6 +22,7 @@ namespace OC\Federation; +use OCP\App\IAppManager; use OCP\Federation\Exceptions\ProviderAlreadyExistsException; use OCP\Federation\Exceptions\ProviderDoesNotExistsException; use OCP\Federation\ICloudFederationNotification; @@ -41,8 +42,12 @@ class CloudFederationProviderManager implements ICloudFederationProviderManager /** @var array list of available cloud federation providers */ private $cloudFederationProvider; - public function __construct() { + /** @var IAppManager */ + private $appManager; + + public function __construct(IAppManager $appManager) { $this->cloudFederationProvider= []; + $this->appManager = $appManager; } @@ -105,4 +110,13 @@ class CloudFederationProviderManager implements ICloudFederationProviderManager // TODO: Implement sendNotification() method. } + /** + * check if the new cloud federation API is ready to be used + * + * @return bool + */ + public function isReady() { + return $this->appManager->isEnabledForUser('cloud_federation_api', false); + } + } diff --git a/lib/private/Server.php b/lib/private/Server.php index 170bc6b258..7156c8a2c2 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -1117,7 +1117,7 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerService(ICloudFederationProviderManager::class, function (Server $c) { - return new CloudFederationProviderManager(); + return new CloudFederationProviderManager($c->getAppManager()); }); $this->registerService(ICloudFederationFactory::class, function (Server $c) { diff --git a/lib/public/Federation/ICloudFederationProviderManager.php b/lib/public/Federation/ICloudFederationProviderManager.php index c978994924..81558c631f 100644 --- a/lib/public/Federation/ICloudFederationProviderManager.php +++ b/lib/public/Federation/ICloudFederationProviderManager.php @@ -93,5 +93,14 @@ interface ICloudFederationProviderManager { */ public function sendNotification(ICloudFederationNotification $notification); + /** + * check if the new cloud federation API is ready to be used + * + * @return bool + * + * @since 14.0.0 + */ + public function isReady(); + }