fix shared mount roots not being returned from `getSharesInFolder`

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/31610/head
Robin Appelman 4 years ago
parent bf48c0b1b4
commit e83ad8cfad
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
  1. 15
      lib/private/Share20/DefaultShareProvider.php

@ -670,8 +670,21 @@ class DefaultShareProvider implements IShareProvider {
);
}
// todo? maybe get these from the oc_mounts table
$childMountNodes = array_filter($node->getDirectoryListing(), function (Node $node) {
return $node->getInternalPath() === '';
});
$childMountRootIds = array_map(function (Node $node) {
return $node->getId();
}, $childMountNodes);
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
$qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())));
$qb->andWhere(
$qb->expr()->orX(
$qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())),
$qb->expr()->in('f.fileid', $qb->createNamedParameter($childMountRootIds, IQueryBuilder::PARAM_INT_ARRAY))
)
);
$qb->orderBy('id');

Loading…
Cancel
Save