From 8e611d05ab50d77330d8d0a2cb5a9b2992247f79 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 19 Sep 2024 19:11:03 +0800 Subject: [PATCH] core: fix user import with group --- packages/hydrooj/src/handler/manage.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/src/handler/manage.ts b/packages/hydrooj/src/handler/manage.ts index e6c8d94e6..e8a91c2fc 100644 --- a/packages/hydrooj/src/handler/manage.ts +++ b/packages/hydrooj/src/handler/manage.ts @@ -270,10 +270,12 @@ class SystemUserImportHandler extends SystemHandler { messages.push(e.message); } } - } - for (const name in groups) { - const uids = groups[name].map((i) => mapping[i]).filter((i) => i); - if (uids.length) await user.updateGroup(domainId, name, uids); + const existing = await user.listGroup(domainId); + for (const name in groups) { + const uids = groups[name].map((i) => mapping[i]).filter((i) => i); + const current = existing.find((i) => i.name === name)?.uids || []; + if (uids.length) await user.updateGroup(domainId, name, Array.from(new Set([...current, ...uids]))); + } } this.response.body.users = udocs; this.response.body.messages = messages;