mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix: fix share cleanup for deleted groups with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
ddecae894a
commit
dc5f0f5fb7
1 changed files with 18 additions and 10 deletions
|
|
@ -1203,10 +1203,14 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|||
|
||||
if (!empty($ids)) {
|
||||
$chunks = array_chunk($ids, 100);
|
||||
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$qb->delete('share')
|
||||
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
||||
->andWhere($qb->expr()->in('parent', $qb->createParameter('parents')));
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
$qb->delete('share')
|
||||
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
||||
->andWhere($qb->expr()->in('parent', $qb->createNamedParameter($chunk, IQueryBuilder::PARAM_INT_ARRAY)));
|
||||
$qb->setParameter('parents', $chunk, IQueryBuilder::PARAM_INT_ARRAY);
|
||||
$qb->execute();
|
||||
}
|
||||
}
|
||||
|
|
@ -1247,14 +1251,18 @@ class DefaultShareProvider implements IShareProviderWithNotification, IShareProv
|
|||
|
||||
if (!empty($ids)) {
|
||||
$chunks = array_chunk($ids, 100);
|
||||
|
||||
/*
|
||||
* Delete all special shares with this user for the found group shares
|
||||
*/
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$qb->delete('share')
|
||||
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
||||
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($uid)))
|
||||
->andWhere($qb->expr()->in('parent', $qb->createParameter('parents')));
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
/*
|
||||
* Delete all special shares with this users for the found group shares
|
||||
*/
|
||||
$qb->delete('share')
|
||||
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_USERGROUP)))
|
||||
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($uid)))
|
||||
->andWhere($qb->expr()->in('parent', $qb->createNamedParameter($chunk, IQueryBuilder::PARAM_INT_ARRAY)));
|
||||
$qb->setParameter('parents', $chunk, IQueryBuilder::PARAM_INT_ARRAY);
|
||||
$qb->executeStatement();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue