Kaynağa Gözat

Allow apps to register resource providers

Signed-off-by: Julius Härtl <jus@bitgrid.net>
tags/v16.0.0alpha1
Julius Härtl 5 yıl önce
ebeveyn
işleme
d85e3e3a6d
No account linked to committer's email address

+ 9
- 0
apps/files/lib/AppInfo/Application.php Dosyayı Görüntüle

@@ -27,9 +27,11 @@
namespace OCA\Files\AppInfo;

use OCA\Files\Activity\Helper;
use OCA\Files\Collaboration\Resources\ResourceProvider;
use OCA\Files\Controller\ApiController;
use OCP\AppFramework\App;
use \OCA\Files\Service\TagService;
use OCP\Collaboration\Resources\IManager;
use \OCP\IContainer;
use OCA\Files\Controller\ViewController;
use OCA\Files\Capabilities;
@@ -99,5 +101,12 @@ class Application extends App {
* Register capabilities
*/
$container->registerCapability(Capabilities::class);

/**
* Register Collaboration ResourceProvider
*/
/** @var IManager $resourceManager */
$resourceManager = $container->query(IManager::class);
$resourceManager->registerResourceProvider($container->query(ResourceProvider::class));
}
}

+ 11
- 4
lib/private/Collaboration/Resources/Manager.php Dosyayı Görüntüle

@@ -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;
}
}

+ 4
- 0
lib/public/Collaboration/Resources/IManager.php Dosyayı Görüntüle

@@ -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;
}

Loading…
İptal
Kaydet