summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/MountProvider.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/lib/MountProvider.php')
-rw-r--r--apps/files_sharing/lib/MountProvider.php20
1 files changed, 19 insertions, 1 deletions
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index 42541b77f2d..102e5d96559 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -30,6 +30,8 @@ namespace OCA\Files_Sharing;
use OC\Cache\CappedMemoryCache;
use OC\Files\View;
+use OCA\Files_Sharing\Event\ShareMountedEvent;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Config\IMountProvider;
use OCP\Files\Storage\IStorageFactory;
use OCP\IConfig;
@@ -54,15 +56,24 @@ class MountProvider implements IMountProvider {
*/
protected $logger;
+ /** @var IEventDispatcher */
+ protected $eventDispatcher;
+
/**
* @param \OCP\IConfig $config
* @param IManager $shareManager
* @param ILogger $logger
*/
- public function __construct(IConfig $config, IManager $shareManager, ILogger $logger) {
+ public function __construct(
+ IConfig $config,
+ IManager $shareManager,
+ ILogger $logger,
+ IEventDispatcher $eventDispatcher
+ ) {
$this->config = $config;
$this->shareManager = $shareManager;
$this->logger = $logger;
+ $this->eventDispatcher = $eventDispatcher;
}
@@ -125,7 +136,14 @@ class MountProvider implements IMountProvider {
$view,
$foldersExistCache
);
+
+ $event = new ShareMountedEvent($mount);
+ $this->eventDispatcher->dispatchTyped($event);
+
$mounts[$mount->getMountPoint()] = $mount;
+ foreach ($event->getAdditionalMounts() as $additionalMount) {
+ $mounts[$additionalMount->getMountPoint()] = $additionalMount;
+ }
} catch (\Exception $e) {
$this->logger->logException($e);
$this->logger->error('Error while trying to create shared mount');