fix usernames to be case insensitive when creating users and logging in

This commit is contained in:
shatfield4
2024-05-08 10:04:42 -07:00
parent 79ea15e074
commit 67e5d080b8
3 changed files with 11 additions and 3 deletions

View File

@@ -15,7 +15,13 @@ export default function NewUserModal({ closeModal }) {
for (var [key, value] of form.entries()) data[key] = value;
const { user, error } = await Admin.newUser(data);
if (!!user) window.location.reload();
setError(error);
if (
error.includes("Unique constraint failed on the fields: (`username`)")
) {
setError("Username already in use. Please choose a different username.");
} else {
setError(error);
}
};
const user = userFromStorage();

View File

@@ -109,7 +109,9 @@ function systemEndpoints(app) {
if (await SystemSettings.isMultiUserMode()) {
const { username, password } = reqBody(request);
const existingUser = await User.get({ username: String(username) });
const existingUser = await User.get({
username: String(username.toLowerCase()),
});
if (!existingUser) {
await EventLogs.logEvent(

View File

@@ -30,7 +30,7 @@ const User = {
const hashedPassword = bcrypt.hashSync(password, 10);
const user = await prisma.users.create({
data: {
username,
username: username.toLowerCase(),
password: hashedPassword,
role,
},