core: user_import: check existance

This commit is contained in:
undefined committed 2021-07-20 23:03:28 +08:00
1 parent b4d38089c3
commit 42d48cc3d6
7 files changed
+28 -16

No files matched your search

+15 -5
View File
@@ -203,7 +203,13 @@ class SystemUserImportHandler extends SystemHandler {
if (!isEmail(email)) messages.push(`Line ${+i + 1}: Invalid email.`);
else if (!isUname(username)) messages.push(`Line ${+i + 1}: Invalid username`);
else if (!isPassword(password)) messages.push(`Line ${+i + 1}: Invalid password`);
else {
// eslint-disable-next-line no-await-in-loop
else if (await user.getByEmail('system', email)) {
messages.push(`Line ${+i + 1}: Email ${email} already exists.`);
// eslint-disable-next-line no-await-in-loop
} else if (await user.getByUname('system', username)) {
messages.push(`Line ${+i + 1}: Username ${username} already exists.`);
} else {
udocs.push({
email, username, password, displayName,
});
@@ -215,10 +221,14 @@ class SystemUserImportHandler extends SystemHandler {
for (const {
email, username, password, displayName,
} of udocs) {
// eslint-disable-next-line no-await-in-loop
const uid = await user.create(email, username, password);
// eslint-disable-next-line no-await-in-loop
if (displayName) await domain.setUserInDomain(domainId, uid, { displayName });
try {
// eslint-disable-next-line no-await-in-loop
const uid = await user.create(email, username, password);
// eslint-disable-next-line no-await-in-loop
if (displayName) await domain.setUserInDomain(domainId, uid, { displayName });
} catch (e) {
messages.push(e.message);
}
}
}
this.response.body.path.push(['manage_user_import']);