diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2024-01-04 11:12:03 +0100 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2024-01-04 13:28:36 +0000 |
commit | 63def6dc95d58171ff50a36182f360f46340a482 (patch) | |
tree | 67832bd200d143ae7257b7cc2b7fdda2325d2006 /apps/user_ldap | |
parent | c61fabed1827d6d31479222c2be2b839d0600efd (diff) | |
download | nextcloud-server-63def6dc95d58171ff50a36182f360f46340a482.tar.gz nextcloud-server-63def6dc95d58171ff50a36182f360f46340a482.zip |
Fix upgrade of user_ldap when oc_group_members contains duplicated uids
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r-- | apps/user_ldap/lib/Migration/Version1190Date20230706134108.php | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/apps/user_ldap/lib/Migration/Version1190Date20230706134108.php b/apps/user_ldap/lib/Migration/Version1190Date20230706134108.php index 3f554f56e64..71fdb536b1a 100644 --- a/apps/user_ldap/lib/Migration/Version1190Date20230706134108.php +++ b/apps/user_ldap/lib/Migration/Version1190Date20230706134108.php @@ -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(); |