fix(webui): handle name already being taken (#2530)
Some checks failed
Build Docker image / docker-amd64 (push) Waiting to run
Build Docker image / docker-arm64 (push) Waiting to run
Build / build (push) Has been cancelled

Closes #2528

Reviewed-on: #2530
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
Sainan 2025-07-22 07:34:31 -07:00 committed by Sainan
parent ddf3cd49b5
commit 304af514e2

View File

@ -2,7 +2,13 @@ import http from "http";
import https from "https"; import https from "https";
import ws from "ws"; import ws from "ws";
import { Account } from "@/src/models/loginModel"; import { Account } from "@/src/models/loginModel";
import { createAccount, createNonce, getUsernameFromEmail, isCorrectPassword } from "@/src/services/loginService"; import {
createAccount,
createNonce,
getUsernameFromEmail,
isCorrectPassword,
isNameTaken
} from "@/src/services/loginService";
import { IDatabaseAccountJson } from "@/src/types/loginTypes"; import { IDatabaseAccountJson } from "@/src/types/loginTypes";
import { HydratedDocument } from "mongoose"; import { HydratedDocument } from "mongoose";
import { logError } from "@/src/utils/logger"; import { logError } from "@/src/utils/logger";
@ -105,6 +111,7 @@ const wsOnConnect = (ws: ws, req: http.IncomingMessage): void => {
} }
} else if (data.auth.isRegister) { } else if (data.auth.isRegister) {
const name = await getUsernameFromEmail(data.auth.email); const name = await getUsernameFromEmail(data.auth.email);
if (!(await isNameTaken(name))) {
account = await createAccount({ account = await createAccount({
email: data.auth.email, email: data.auth.email,
password: data.auth.password, password: data.auth.password,
@ -114,6 +121,7 @@ const wsOnConnect = (ws: ws, req: http.IncomingMessage): void => {
Nonce: createNonce() Nonce: createNonce()
}); });
} }
}
if (account) { if (account) {
(ws as IWsCustomData).accountId = account.id; (ws as IWsCustomData).accountId = account.id;
ws.send( ws.send(