Skip to content

Commit 5cdaa11

Browse files
committed
fix: fix share cleanup for deleted groups with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
1 parent 335cbdf commit 5cdaa11

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

lib/private/Share20/DefaultShareProvider.php

+18-10
Original file line numberDiff line numberDiff line change
@@ -1201,10 +1201,14 @@ public function groupDeleted($gid) {
12011201

12021202
if (!empty($ids)) {
12031203
$chunks = array_chunk($ids, 100);
1204+
1205+
$qb = $this->dbConn->getQueryBuilder();
1206+
$qb->delete('share')
1207+
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
1208+
->andWhere($qb->expr()->in('parent', $qb->createParameter('parents')));
1209+
12041210
foreach ($chunks as $chunk) {
1205-
$qb->delete('share')
1206-
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
1207-
->andWhere($qb->expr()->in('parent', $qb->createNamedParameter($chunk, IQueryBuilder::PARAM_INT_ARRAY)));
1211+
$qb->setParameter('parents', $chunk, IQueryBuilder::PARAM_INT_ARRAY);
12081212
$qb->execute();
12091213
}
12101214
}
@@ -1244,14 +1248,18 @@ public function userDeletedFromGroup($uid, $gid) {
12441248

12451249
if (!empty($ids)) {
12461250
$chunks = array_chunk($ids, 100);
1251+
1252+
/*
1253+
* Delete all special shares with this user for the found group shares
1254+
*/
1255+
$qb = $this->dbConn->getQueryBuilder();
1256+
$qb->delete('share')
1257+
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
1258+
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($uid)))
1259+
->andWhere($qb->expr()->in('parent', $qb->createParameter('parents')));
1260+
12471261
foreach ($chunks as $chunk) {
1248-
/*
1249-
* Delete all special shares with this users for the found group shares
1250-
*/
1251-
$qb->delete('share')
1252-
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
1253-
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($uid)))
1254-
->andWhere($qb->expr()->in('parent', $qb->createNamedParameter($chunk, IQueryBuilder::PARAM_INT_ARRAY)));
1262+
$qb->setParameter('parents', $chunk, IQueryBuilder::PARAM_INT_ARRAY);
12551263
$qb->execute();
12561264
}
12571265
}

0 commit comments

Comments
 (0)