diff --git a/backend/internal/user.js b/backend/internal/user.js index 37cd8043..0f0130bd 100644 --- a/backend/internal/user.js +++ b/backend/internal/user.js @@ -27,14 +27,6 @@ const internalUser = { const auth = data.auth || null; delete data.auth; - data.email = data.email.toLowerCase().trim(); - const emailAvailable = await internalUser.isEmailAvailable(data.email, undefined); - if (!emailAvailable) { - throw new errs.ValidationError( - `Email address already in use - ${data.email}`, - ); - } - data.avatar = data.avatar || ""; data.roles = data.roles || []; @@ -43,6 +35,15 @@ const internalUser = { } await access.can("users:create", data); + + if (typeof data.email !== "undefined" && data.email !== null) { + data.email = data.email.toLowerCase().trim(); + const emailAvailable = await internalUser.isEmailAvailable(data.email); + if (!emailAvailable) { + throw new errs.ValidationError(`Email address already in use - ${data.email}`); + } + } + data.avatar = gravatar.url(data.email, { default: "mm" }); let user = await userModel.query().insertAndFetch(data).then(utils.omitRow(omissions()));