diff --git a/lib/Folder/FolderManager.php b/lib/Folder/FolderManager.php index cb9717663..7028ddf8a 100644 --- a/lib/Folder/FolderManager.php +++ b/lib/Folder/FolderManager.php @@ -684,9 +684,14 @@ public function getFoldersFromCircleMemberships(IUser $user, int $rootStorageId 'group_folders_groups', 'a', $query->expr()->eq('f.folder_id', 'a.folder_id') - ); + ) + ->where($query->expr()->neq('a.circle_id', $query->createNamedParameter(''))); - $queryHelper->limitToInheritedMembers('a', 'circle_id', $federatedUser); + if (method_exists($queryHelper, 'limitToMemberships')) { + $queryHelper->limitToMemberships('a', 'circle_id', $federatedUser); + } else { + $queryHelper->limitToInheritedMembers('a', 'circle_id', $federatedUser); + } $this->joinQueryWithFileCache($query, $rootStorageId); return array_map(function (array $folder): array { diff --git a/lib/Migration/Version2000000Date20250128110101.php b/lib/Migration/Version2000000Date20250128110101.php new file mode 100644 index 000000000..3d46ca898 --- /dev/null +++ b/lib/Migration/Version2000000Date20250128110101.php @@ -0,0 +1,31 @@ +getTable('group_folders_groups'); + if (!$table->hasIndex('groups_folder_circle')) { + $table->addIndex(['circle_id'], 'groups_folder_circle'); + } + + return $schema; + } +}