Browse Source

Return proper watcher if SharedStorage originates from ExternalMount

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
tags/v23.0.0beta1
John Molakvoæ (skjnldsv) 2 years ago
parent
commit
719480ad9d
No account linked to committer's email address
1 changed files with 16 additions and 1 deletions
  1. 16
    1
      apps/files_sharing/lib/SharedStorage.php

+ 16
- 1
apps/files_sharing/lib/SharedStorage.php View File

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

Loading…
Cancel
Save