Skip to content

Commit bfeb97c

Browse files
committed
fix: also filter by storage when getting shares in folder
Signed-off-by: Robin Appelman <robin@icewind.nl>
1 parent c651e06 commit bfeb97c

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

apps/federatedfilesharing/lib/FederatedShareProvider.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,8 +605,9 @@ public function getSharesInFolder($userId, Folder $node, $reshares, $shallow = t
605605

606606
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
607607

608+
$qb->andWhere($qb->expr()->eq('f.storage', $qb->createNamedParameter($node->getMountPoint()->getNumericStorageId(), IQueryBuilder::PARAM_INT)));
608609
if ($shallow) {
609-
$qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())));
610+
$qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId(), IQueryBuilder::PARAM_INT)));
610611
} else {
611612
$qb->andWhere($qb->expr()->like('f.path', $qb->createNamedParameter($this->dbConnection->escapeLikeParameter($node->getInternalPath()) . '/%')));
612613
}

apps/sharebymail/lib/ShareByMailProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,6 +1069,7 @@ public function getSharesInFolder($userId, Folder $node, $reshares, $shallow = t
10691069

10701070
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
10711071

1072+
$qb->andWhere($qb->expr()->eq('f.storage', $qb->createNamedParameter($node->getMountPoint()->getNumericStorageId(), IQueryBuilder::PARAM_INT)));
10721073
if ($shallow) {
10731074
$qb->andWhere($qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())));
10741075
} else {

lib/private/Share20/DefaultShareProvider.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -692,17 +692,24 @@ public function getSharesInFolder($userId, Folder $node, $reshares, $shallow = t
692692
}, $childMountNodes);
693693

694694
$qb->innerJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid'));
695+
$storageFilter = $qb->expr()->eq('f.storage', $qb->createNamedParameter($node->getMountPoint()->getNumericStorageId(), IQueryBuilder::PARAM_INT));
695696
if ($shallow) {
696697
$qb->andWhere(
697698
$qb->expr()->orX(
698-
$qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())),
699+
$qb->expr()->andX(
700+
$storageFilter,
701+
$qb->expr()->eq('f.parent', $qb->createNamedParameter($node->getId())),
702+
),
699703
$qb->expr()->in('f.fileid', $qb->createParameter('chunk'))
700704
)
701705
);
702706
} else {
703707
$qb->andWhere(
704708
$qb->expr()->orX(
705-
$qb->expr()->like('f.path', $qb->createNamedParameter($this->dbConn->escapeLikeParameter($node->getInternalPath()) . '/%')),
709+
$qb->expr()->andX(
710+
$storageFilter,
711+
$qb->expr()->like('f.path', $qb->createNamedParameter($this->dbConn->escapeLikeParameter($node->getInternalPath()) . '/%')),
712+
),
706713
$qb->expr()->in('f.fileid', $qb->createParameter('chunk'))
707714
)
708715
);

0 commit comments

Comments
 (0)