diff --git a/backend/internal/token.js b/backend/internal/token.js index 67255b21..7ed689b2 100644 --- a/backend/internal/token.js +++ b/backend/internal/token.js @@ -29,7 +29,7 @@ export default { const user = await userModel .query() - .where("email", data.identity.toLowerCase().trim()) + .whereRaw("LOWER(email) = ?", [data.identity.toLowerCase().trim()]) .andWhere("is_deleted", 0) .andWhere("is_disabled", 0) .first(); diff --git a/backend/internal/user.js b/backend/internal/user.js index 8dd86f46..08aaf1dc 100644 --- a/backend/internal/user.js +++ b/backend/internal/user.js @@ -34,6 +34,10 @@ const internalUser = { data.is_disabled = data.is_disabled ? 1 : 0; } + if (typeof data.email === "string") { + data.email = data.email.toLowerCase().trim(); + } + await access.can("users:create", data); data.avatar = gravatar.url(data.email, { default: "mm" }); diff --git a/backend/setup.js b/backend/setup.js index 9e8841e1..1750ab34 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -38,7 +38,7 @@ const setupDefaultUser = async () => { const data = { is_deleted: 0, - email: initialAdminEmail, + email: initialAdminEmail.toLowerCase().trim(), name: "Administrator", nickname: "Admin", avatar: "",