diff options
author | szaimen <szaimen@e.mail.de> | 2021-09-10 10:12:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-10 10:12:19 +0200 |
commit | 43fcd28ea05824b4a69d676ca8934812555f3705 (patch) | |
tree | 17190444d1b15bafab272eb52a2a0c0d5994f60e /apps/files_sharing | |
parent | 90b47ab7f0aeb1af91a4639d9f863c1eb2d0ca2b (diff) | |
parent | 719480ad9d74f002065d5661ff1f9fc8ce6ad301 (diff) | |
download | nextcloud-server-43fcd28ea05824b4a69d676ca8934812555f3705.tar.gz nextcloud-server-43fcd28ea05824b4a69d676ca8934812555f3705.zip |
Merge pull request #28377 from nextcloud/fix/shared-ext-storage-scan
Scan the shared external storage source on access
Diffstat (limited to 'apps/files_sharing')
-rw-r--r-- | apps/files_sharing/lib/SharedStorage.php | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php index f4a525ce871..66f883e106c 100644 --- a/apps/files_sharing/lib/SharedStorage.php +++ b/apps/files_sharing/lib/SharedStorage.php @@ -34,10 +34,12 @@ namespace OCA\Files_Sharing; use OC\Files\Cache\FailedCache; use OC\Files\Cache\NullWatcher; +use OC\Files\Cache\Watcher; use OC\Files\Filesystem; use OC\Files\Storage\FailedStorage; use OC\Files\Storage\Wrapper\PermissionsMask; use OC\User\NoUserException; +use OCA\Files_External\Config\ExternalMountPoint; use OCP\Constants; use OCP\Files\Cache\ICacheEntry; use OCP\Files\NotFoundException; @@ -405,7 +407,20 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto return $this->superShare->getShareOwner(); } - public function getWatcher($path = '', $storage = null): NullWatcher { + public function getWatcher($path = '', $storage = null): Watcher { + $mountManager = \OC::$server->getMountManager(); + + // Get node informations + $node = $this->getShare()->getNodeCacheEntry(); + if ($node) { + $mount = $mountManager->findByNumericId($node->getStorageId()); + // If the share is originating from an external storage + if (count($mount) > 0 && $mount[0] instanceof ExternalMountPoint) { + // Propagate original storage scan + return parent::getWatcher($path, $storage); + } + } + // cache updating is handled by the share source return new NullWatcher(); } |