Skip to content

Commit a0a079d

Browse files
authored
Merge pull request #31924 from nextcloud/backport/31610/stable22
[stable22] fix shared mount roots not being returned from `getSharesInFolder`
2 parents f329ece + c11de19 commit a0a079d

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

lib/private/Share20/DefaultShareProvider.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,8 +666,21 @@ public function getSharesInFolder($userId, Folder $node, $reshares) {
666666
);
667667
}
668668

669+
// todo? maybe get these from the oc_mounts table
670+
$childMountNodes = array_filter($node->getDirectoryListing(), function (Node $node) {
671+
return $node->getInternalPath() === '';
672+
});
673+
$childMountRootIds = array_map(function (Node $node) {
674+
return $node->getId();
675+
}, $childMountNodes);
676+
669677
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
670-
$qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())));
678+
$qb->andWhere(
679+
$qb->expr()->orX(
680+
$qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())),
681+
$qb->expr()->in('f.fileid', $qb->createNamedParameter($childMountRootIds, IQueryBuilder::PARAM_INT_ARRAY))
682+
)
683+
);
671684

672685
$qb->orderBy('id');
673686

0 commit comments

Comments
 (0)