Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-01-24 13:43:18 +0300
committerJulius Härtl <jus@bitgrid.net>2019-03-01 22:56:17 +0300
commitd85e3e3a6d775261cd4a504e07b111224cda8fc8 (patch)
treeae4a15f565ea0f819b9f92a54f1c34b05d7e85c2 /lib
parent88aa3de7842a5113de5f137ba57bdae1f77777b5 (diff)
Allow apps to register resource providers
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Collaboration/Resources/Manager.php15
-rw-r--r--lib/public/Collaboration/Resources/IManager.php4
2 files changed, 15 insertions, 4 deletions
diff --git a/lib/private/Collaboration/Resources/Manager.php b/lib/private/Collaboration/Resources/Manager.php
index cc09089c711..071fa3c9436 100644
--- a/lib/private/Collaboration/Resources/Manager.php
+++ b/lib/private/Collaboration/Resources/Manager.php
@@ -23,7 +23,6 @@ declare(strict_types=1);
namespace OC\Collaboration\Resources;
-use OCA\Files\Collaboration\Resources\ResourceProvider;
use OCP\Collaboration\Resources\CollectionException;
use OCP\Collaboration\Resources\ICollection;
use OCP\Collaboration\Resources\IManager;
@@ -39,6 +38,9 @@ class Manager implements IManager {
/** @var IDBConnection */
protected $connection;
+ /** @var IProvider[] */
+ protected $providers = [];
+
public function __construct(IDBConnection $connection) {
$this->connection = $connection;
}
@@ -96,9 +98,7 @@ class Manager implements IManager {
* @since 15.0.0
*/
public function getProviders(): array {
- return [
- \OC::$server->query(ResourceProvider::class) // FIXME
- ];
+ return $this->providers;
}
/**
@@ -155,4 +155,11 @@ class Manager implements IManager {
return false;
}
+
+ /**
+ * @param IProvider $provider
+ */
+ public function registerResourceProvider(IProvider $provider): void {
+ $this->providers[] = $provider;
+ }
}
diff --git a/lib/public/Collaboration/Resources/IManager.php b/lib/public/Collaboration/Resources/IManager.php
index dd1c970af79..eab101ff8e7 100644
--- a/lib/public/Collaboration/Resources/IManager.php
+++ b/lib/public/Collaboration/Resources/IManager.php
@@ -50,4 +50,8 @@ interface IManager extends IProvider {
*/
public function getResource(string $type, string $id): IResource;
+ /**
+ * @param IProvider $provider
+ */
+ public function registerResourceProvider(IProvider $provider): void;
}