Handle nonexisting share provider registration

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2020-12-16 15:47:04 +01:00
parent 715ab2249b
commit 02237040d4
3 changed files with 14 additions and 3 deletions

View File

@@ -36,7 +36,7 @@
<database min-version="9.4">pgsql</database> <database min-version="9.4">pgsql</database>
<database>sqlite</database> <database>sqlite</database>
<database min-version="5.5">mysql</database> <database min-version="5.5">mysql</database>
<nextcloud min-version="18" max-version="21" /> <nextcloud min-version="20" max-version="21" />
</dependencies> </dependencies>
<background-jobs> <background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job> <job>OCA\Deck\Cron\DeleteCron</job>

View File

@@ -99,7 +99,9 @@ class Application20 extends App implements IBootstrap {
$context->injectFn(Closure::fromCallable([$this, 'registerCollaborationResources'])); $context->injectFn(Closure::fromCallable([$this, 'registerCollaborationResources']));
$context->injectFn(function (IManager $shareManager) { $context->injectFn(function (IManager $shareManager) {
$shareManager->registerShareProvider(DeckShareProvider::class); if (method_exists($shareManager, 'registerShareProvider')) {
$shareManager->registerShareProvider(DeckShareProvider::class);
}
}); });
$context->injectFn(function (Listener $listener, IEventDispatcher $eventDispatcher) { $context->injectFn(function (Listener $listener, IEventDispatcher $eventDispatcher) {

View File

@@ -27,18 +27,27 @@ declare(strict_types=1);
namespace OCA\Deck\Sharing; namespace OCA\Deck\Sharing;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\PermissionService;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IURLGenerator; use OCP\IURLGenerator;
use OCP\Share\IShare; use OCP\Share\IShare;
class ShareAPIHelper { class ShareAPIHelper {
private $urlGenerator; private $urlGenerator;
private $timeFactory;
private $cardMapper; private $cardMapper;
private $permissionService;
public function __construct(IURLGenerator $urlGenerator, CardMapper $cardMapper) { public function __construct(IURLGenerator $urlGenerator, ITimeFactory $timeFactory, CardMapper $cardMapper, PermissionService $permissionService) {
$this->urlGenerator = $urlGenerator; $this->urlGenerator = $urlGenerator;
$this->timeFactory = $timeFactory;
$this->cardMapper = $cardMapper; $this->cardMapper = $cardMapper;
$this->permissionService = $permissionService;
} }
public function formatShare(IShare $share): array { public function formatShare(IShare $share): array {