Skip to content

Commit 94a5e14

Browse files
authored
Merge pull request #54205 from nextcloud/backport/54182/stable30
[stable30] fix: don't update cached mountpoints if the request doesn't have filesystem access
2 parents 3ae3932 + 8519f5a commit 94a5e14

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

lib/private/Files/SetupManager.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ private function afterUserFullySetup(IUser $user, array $previouslySetupProvider
287287
$mounts = array_filter($mounts, function (IMountPoint $mount) use ($previouslySetupProviders) {
288288
return !in_array($mount->getMountProvider(), $previouslySetupProviders);
289289
});
290-
$this->userMountCache->registerMounts($user, $mounts, $newProviders);
290+
$this->registerMounts($user, $mounts, $newProviders);
291291

292292
$cacheDuration = $this->config->getSystemValueInt('fs_mount_cache_duration', 5 * 60);
293293
if ($cacheDuration > 0) {
@@ -452,7 +452,7 @@ public function setupForPath(string $path, bool $includeChildren = false): void
452452
}
453453

454454
if (count($mounts)) {
455-
$this->userMountCache->registerMounts($user, $mounts, $currentProviders);
455+
$this->registerMounts($user, $mounts, $currentProviders);
456456
$this->setupForUserWith($user, function () use ($mounts) {
457457
array_walk($mounts, [$this->mountManager, 'addMount']);
458458
});
@@ -523,7 +523,7 @@ public function setupForProvider(string $path, array $providers): void {
523523
$mounts = $this->mountProviderCollection->getUserMountsForProviderClasses($user, $providers);
524524
}
525525

526-
$this->userMountCache->registerMounts($user, $mounts, $providers);
526+
$this->registerMounts($user, $mounts, $providers);
527527
$this->setupForUserWith($user, function () use ($mounts) {
528528
array_walk($mounts, [$this->mountManager, 'addMount']);
529529
});
@@ -595,4 +595,10 @@ private function setupListeners() {
595595
});
596596
}
597597
}
598+
599+
private function registerMounts(IUser $user, array $mounts, ?array $mountProviderClasses = null): void {
600+
if ($this->lockdownManager->canAccessFilesystem()) {
601+
$this->userMountCache->registerMounts($user, $mounts, $mountProviderClasses);
602+
}
603+
}
598604
}

0 commit comments

Comments
 (0)