Fix upgrade of user_ldap when oc_group_members contains duplicated uids

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
Côme Chilliet 2024-01-04 11:12:03 +01:00 committed by backportbot-nextcloud[bot]
parent c61fabed18
commit 63def6dc95

View file

@ -99,13 +99,21 @@ class Version1190Date20230706134108 extends SimpleMigrationStep {
$result = $query->executeQuery();
while ($row = $result->fetch()) {
$knownUsers = unserialize($row['owncloudusers']);
$knownUsers = array_unique($knownUsers);
foreach ($knownUsers as $knownUser) {
$insert
->setParameter('groupid', $row['owncloudname'])
->setParameter('userid', $knownUser)
;
try {
$insert
->setParameter('groupid', $row['owncloudname'])
->setParameter('userid', $knownUser)
;
$insert->executeStatement();
$insert->executeStatement();
} catch (\OCP\DB\Exception $e) {
/*
* If it fails on unique constaint violation it may just be left over value from previous half-migration
* If it fails on something else, ignore as well, data will be filled by background job later anyway
*/
}
}
}
$result->closeCursor();