Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-01-13 14:30:27 +0300
committerCarl Schwan <carl@carlschwan.eu>2022-01-17 16:39:31 +0300
commite5c54bd8acf6bf7c5d5ea81c436112a5800bf19a (patch)
treecabd2a99d385dbe44aecf0f5bfe4c5c3449a6a13 /apps
parent33f49b13ed9cbbd07faca50d4c7788dccc751c01 (diff)
Fix psalm issues
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Diffstat (limited to 'apps')
-rw-r--r--apps/workflowengine/lib/Check/FileSystemTags.php26
1 files changed, 19 insertions, 7 deletions
diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php
index 1cc9509ba81..e6c4a926057 100644
--- a/apps/workflowengine/lib/Check/FileSystemTags.php
+++ b/apps/workflowengine/lib/Check/FileSystemTags.php
@@ -128,13 +128,25 @@ class FileSystemTags implements ICheck, IFileCheck {
* @return int[]
*/
protected function getFileIds(ICache $cache, $path, $isExternalStorage) {
- // TODO: Fix caching inside group folders
- // Do not cache file ids inside group folders because multiple file ids might be mapped to
- // the same combination of cache id + path.
- $shouldCacheFileIds = !$this->storage
- ->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class);
- $cacheId = $cache->getNumericStorageId();
- if ($shouldCacheFileIds && isset($this->fileIds[$cacheId][$path])) {
+ if ($this->storage->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class)) {
+ // Special implementation for groupfolder since all groupfolders share the same storage
+ // id so add the group folder id in the cache key too.
+ $groupFolderStorage = $this->storage;
+ if ($this->storage instanceof Wrapper) {
+ $groupFolderStorage = $this->storage->getInstanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class);
+ }
+ if ($groupFolderStorage === null) {
+ throw new \LogicException('Should not happen: Storage is instance of GroupFolderStorage but no group folder storage found while unwrapping.');
+ }
+ /**
+ * @psalm-suppress UndefinedDocblockClass
+ * @psalm-suppress UndefinedInterfaceMethod
+ */
+ $cacheId = $cache->getNumericStorageId() . '/' . $groupFolderStorage->getFolderId();
+ } else {
+ $cacheId = $cache->getNumericStorageId();
+ }
+ if (isset($this->fileIds[$cacheId][$path])) {
return $this->fileIds[$cacheId][$path];
}