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

+3 -3
View File
@@ -33,12 +33,12 @@
"@types/jest": "^26.0.24",
"@types/node": "^15.14.2",
"@types/semver": "^7.3.7",
"@typescript-eslint/eslint-plugin": "^4.28.3",
"@typescript-eslint/parser": "^4.28.3",
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
"cac": "^6.7.3",
"cross-env": "^7.0.3",
"cross-spawn": "^7.0.3",
"eslint": "^7.30.0",
"eslint": "^7.31.0",
"eslint-config-airbnb-typescript": "^12.3.1",
"eslint-import-resolver-typescript": "^2.4.0",
"eslint-plugin-import": "^2.23.4",
+1 -1
View File
@@ -24,7 +24,7 @@
"@types/js-yaml": "^4.0.2",
"@types/lodash": "^4.14.171",
"@types/shell-quote": "^1.7.1",
"@types/ws": "^7.4.6"
"@types/ws": "^7.4.7"
},
"peerDependencies": {
"hydrooj": "*"
+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']);
+1 -1
View File
@@ -10,6 +10,6 @@
"ws": "^7.5.3"
},
"devDependencies": {
"@types/ws": "^7.4.6"
"@types/ws": "^7.4.7"
}
}
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@hydrooj/ui-default",
"version": "4.12.26",
"version": "4.12.27",
"author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0",
"main": "hydro.js",
@@ -44,7 +44,7 @@
"diff-dom": "^4.2.2",
"echarts": "^5.1.2",
"emojify.js": "^1.1.0",
"eslint": "^7.30.0",
"eslint": "^7.31.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-import-resolver-webpack": "^0.13.1",
"eslint-plugin-babel": "^5.3.1",
@@ -68,7 +68,7 @@
"jquery.transit": "^0.9.12",
"mini-css-extract-plugin": "^1.6.2",
"moment": "^2.29.1",
"monaco-editor": "^0.26.0",
"monaco-editor": "^0.26.1",
"monaco-editor-webpack-plugin": "^4.1.1",
"nanoid": "^3.1.23",
"normalize.css": "^8.0.1",
@@ -77,7 +77,7 @@
"pickadate": "^3.6.4",
"plugin-error": "^1.0.1",
"postcss-loader": "^3.0.0",
"prism-themes": "^1.7.0",
"prism-themes": "^1.8.0",
"prismjs": "^1.24.1",
"prop-types": "^15.7.2",
"react": "^17.0.2",
+1 -1
View File
@@ -12,7 +12,7 @@
"js-yaml": "^4.1.0",
"moment": "^2.29.1",
"mongodb": "^3.6.10",
"systeminformation": "^5.7.7"
"systeminformation": "^5.7.8"
},
"devDependencies": {
"@types/fs-extra": "^9.0.12",
+3 -1
View File
@@ -11,10 +11,12 @@
"@hydrooj/utils": "workspace:*",
"jsdom": "^16.6.0",
"superagent": "^6.1.0",
"superagent-proxy": "^2.1.0"
"superagent-proxy": "^2.1.0",
"turndown": "^7.1.1"
},
"devDependencies": {
"@types/jsdom": "^16.2.13",
"@types/superagent": "^4.1.12",
"@types/superagent-proxy": "^2.0.0"
}
}