fix being able to register with taken username

This commit is contained in:
Puyodead1
2023-09-08 22:38:56 -04:00
committed by Rory&
parent 4a7cd6e399
commit c5d28482bf
4 changed files with 11 additions and 8 deletions

View File

@@ -35,7 +35,7 @@ router.get("/", route({}), (req: Request, res: Response) => {
if (uniqueUsernames) {
// hash, revision, bucket, override, population, hash_result, as_mode
// bucket 4 is used by the official client, and enables live checking and suggestions, 3 is only live checking
data.assignments.push([2476969328, 0, 3, -1, 0, 9267, 0, 0]);
data.assignments.push([2476969328, 0, 4, -1, 0, 9267, 0, 0]);
}
res.send(data);
});

View File

@@ -25,7 +25,7 @@ router.post(
}
res.json({
taken: !User.isUsernameAvailable(body.username),
taken: !(await User.isUsernameAvailable(body.username)),
});
},
);

View File

@@ -152,7 +152,7 @@ router.patch(
}
// check if username is already taken (pomelo only)
if (!User.isUsernameAvailable(body.username))
if (!(await User.isUsernameAvailable(body.username)))
throw FieldErrors({
username: {
code: "USERNAME_ALREADY_TAKEN",

View File

@@ -318,7 +318,7 @@ export class User extends BaseClass {
if (uniqueUsernames) {
// check if there is already an account with this username
if (!User.isUsernameAvailable(username))
if (!(await User.isUsernameAvailable(username)))
throw FieldErrors({
username: {
code: "USERNAME_ALREADY_TAKEN",
@@ -439,10 +439,13 @@ export class User extends BaseClass {
}
static async isUsernameAvailable(username: string) {
const user = await User.findOne({
where: { username },
select: ["id"],
// TODO: implement regex check?
const count = await User.count({
where: {
username: username.toLowerCase(),
},
});
return !user;
return count === 0;
}
}