Skip to content

Commit 239647d

Browse files
committed
fix: update information cached by mount point on rename
Signed-off-by: Salvatore Martire <[email protected]>
1 parent 28f38a0 commit 239647d

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

lib/private/Files/SetupManager.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
use OCP\Files\Config\IUserMountCache;
4141
use OCP\Files\Events\BeforeFileSystemSetupEvent;
4242
use OCP\Files\Events\InvalidateMountCacheEvent;
43+
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
4344
use OCP\Files\Events\Node\FilesystemTornDownEvent;
4445
use OCP\Files\Mount\IMountManager;
4546
use OCP\Files\Mount\IMountPoint;
@@ -714,6 +715,16 @@ private function setupListeners() {
714715
$this->eventDispatcher->addListener(ShareCreatedEvent::class, function (ShareCreatedEvent $event) {
715716
$this->cache->remove($event->getShare()->getSharedWith());
716717
});
718+
$this->eventDispatcher->addListener(BeforeNodeRenamedEvent::class, function (BeforeNodeRenamedEvent $event) {
719+
// update cache information that is cached by mount point
720+
$from = rtrim($event->getSource()->getPath(), '/') . '/';
721+
$to = rtrim($event->getTarget()->getPath(), '/') . '/';
722+
$existingMount = $this->setupMountProviderPaths[$from] ?? null;
723+
if ($existingMount !== null) {
724+
$this->setupMountProviderPaths[$to] = $this->setupMountProviderPaths[$from];
725+
unset($this->setupMountProviderPaths[$from]);
726+
}
727+
});
717728
$this->eventDispatcher->addListener(InvalidateMountCacheEvent::class, function (InvalidateMountCacheEvent $event,
718729
) {
719730
if ($user = $event->getUser()) {

0 commit comments

Comments
 (0)