|
|
|
@ -532,23 +532,23 @@ class RoomShareProvider implements IShareProvider { |
|
|
|
$qb->select('*') |
|
|
|
->from('share', 's') |
|
|
|
->andWhere($qb->expr()->orX( |
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')), |
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder')) |
|
|
|
$qb->expr()->eq('s.item_type', $qb->createNamedParameter('file')), |
|
|
|
$qb->expr()->eq('s.item_type', $qb->createNamedParameter('folder')) |
|
|
|
)) |
|
|
|
->andWhere( |
|
|
|
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_ROOM)) |
|
|
|
$qb->expr()->eq('s.share_type', $qb->createNamedParameter(IShare::TYPE_ROOM)) |
|
|
|
); |
|
|
|
|
|
|
|
/** |
|
|
|
* Reshares for this user are shares where they are the owner. |
|
|
|
*/ |
|
|
|
if ($reshares === false) { |
|
|
|
$qb->andWhere($qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId))); |
|
|
|
$qb->andWhere($qb->expr()->eq('s.uid_initiator', $qb->createNamedParameter($userId))); |
|
|
|
} else { |
|
|
|
$qb->andWhere( |
|
|
|
$qb->expr()->orX( |
|
|
|
$qb->expr()->eq('uid_owner', $qb->createNamedParameter($userId)), |
|
|
|
$qb->expr()->eq('uid_initiator', $qb->createNamedParameter($userId)) |
|
|
|
$qb->expr()->eq('s.uid_owner', $qb->createNamedParameter($userId)), |
|
|
|
$qb->expr()->eq('s.uid_initiator', $qb->createNamedParameter($userId)) |
|
|
|
) |
|
|
|
); |
|
|
|
} |
|
|
|
@ -556,7 +556,7 @@ class RoomShareProvider implements IShareProvider { |
|
|
|
$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->orderBy('id'); |
|
|
|
$qb->orderBy('s.id'); |
|
|
|
|
|
|
|
$cursor = $qb->execute(); |
|
|
|
$shares = []; |
|
|
|
@ -782,7 +782,7 @@ class RoomShareProvider implements IShareProvider { |
|
|
|
) |
|
|
|
->selectAlias('st.id', 'storage_string_id') |
|
|
|
->from('share', 's') |
|
|
|
->orderBy('id') |
|
|
|
->orderBy('s.id') |
|
|
|
->leftJoin('s', 'filecache', 'f', $qb->expr()->eq('s.file_source', 'f.fileid')) |
|
|
|
->leftJoin('f', 'storages', 'st', $qb->expr()->eq('f.storage', 'st.numeric_id')); |
|
|
|
|
|
|
|
@ -792,19 +792,19 @@ class RoomShareProvider implements IShareProvider { |
|
|
|
|
|
|
|
// Filter by node if provided
|
|
|
|
if ($node !== null) { |
|
|
|
$qb->andWhere($qb->expr()->eq('file_source', $qb->createNamedParameter($node->getId()))); |
|
|
|
$qb->andWhere($qb->expr()->eq('s.file_source', $qb->createNamedParameter($node->getId()))); |
|
|
|
} |
|
|
|
|
|
|
|
$rooms = array_map(function(Room $room) { return $room->getToken(); }, $rooms); |
|
|
|
|
|
|
|
$qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_ROOM))) |
|
|
|
->andWhere($qb->expr()->in('share_with', $qb->createNamedParameter( |
|
|
|
$qb->andWhere($qb->expr()->eq('s.share_type', $qb->createNamedParameter(IShare::TYPE_ROOM))) |
|
|
|
->andWhere($qb->expr()->in('s.share_with', $qb->createNamedParameter( |
|
|
|
$rooms, |
|
|
|
IQueryBuilder::PARAM_STR_ARRAY |
|
|
|
))) |
|
|
|
->andWhere($qb->expr()->orX( |
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('file')), |
|
|
|
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder')) |
|
|
|
$qb->expr()->eq('s.item_type', $qb->createNamedParameter('file')), |
|
|
|
$qb->expr()->eq('s.item_type', $qb->createNamedParameter('folder')) |
|
|
|
)); |
|
|
|
|
|
|
|
$cursor = $qb->execute(); |
|
|
|
|