bug fixed

This commit is contained in:
daniel31x13 2023-10-23 01:45:31 -04:00
parent 565ee92d20
commit bcae97a296
2 changed files with 30 additions and 7 deletions

View File

@ -54,10 +54,10 @@ export default async function postUser(
const checkIfUserExists = await prisma.user.findFirst({ const checkIfUserExists = await prisma.user.findFirst({
where: emailEnabled where: emailEnabled
? { ? {
email: body.email?.toLowerCase(), email: body.email?.toLowerCase().trim(),
} }
: { : {
username: (body.username as string).toLowerCase(), username: (body.username as string).toLowerCase().trim(),
}, },
}); });
@ -71,8 +71,8 @@ export default async function postUser(
name: body.name, name: body.name,
username: emailEnabled username: emailEnabled
? undefined ? undefined
: (body.username as string).toLowerCase(), : (body.username as string).toLowerCase().trim(),
email: emailEnabled ? body.email?.toLowerCase() : undefined, email: emailEnabled ? body.email?.toLowerCase().trim() : undefined,
password: hashedPassword, password: hashedPassword,
}, },
}); });

View File

@ -29,6 +29,15 @@ export default async function updateUser(
status: 400, status: 400,
}; };
// Check email (if enabled)
const checkEmail =
/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
if (emailEnabled && !checkEmail.test(data.email?.toLowerCase() || ""))
return {
response: "Please enter a valid email.",
status: 400,
};
const checkUsername = RegExp("^[a-z0-9_-]{3,31}$"); const checkUsername = RegExp("^[a-z0-9_-]{3,31}$");
if (!checkUsername.test(data.username.toLowerCase())) if (!checkUsername.test(data.username.toLowerCase()))
@ -58,11 +67,25 @@ export default async function updateUser(
}, },
}); });
if (userIsTaken) if (userIsTaken) {
if (data.email?.toLowerCase().trim() === userIsTaken.email?.trim())
return {
response: "Email is taken.",
status: 400,
};
else if (
data.username?.toLowerCase().trim() === userIsTaken.username?.trim()
)
return {
response: "Username is taken.",
status: 400,
};
return { return {
response: "Username/Email is taken.", response: "Username/Email is taken.",
status: 400, status: 400,
}; };
}
// Avatar Settings // Avatar Settings
@ -105,8 +128,8 @@ export default async function updateUser(
}, },
data: { data: {
name: data.name, name: data.name,
username: data.username.toLowerCase(), username: data.username.toLowerCase().trim(),
email: data.email?.toLowerCase(), email: data.email?.toLowerCase().trim(),
isPrivate: data.isPrivate, isPrivate: data.isPrivate,
archiveAsScreenshot: data.archiveAsScreenshot, archiveAsScreenshot: data.archiveAsScreenshot,
archiveAsPDF: data.archiveAsPDF, archiveAsPDF: data.archiveAsPDF,