diff --git a/website/common/locales/en/messages.json b/website/common/locales/en/messages.json index 60ee7032b0..2ddeef84fc 100644 --- a/website/common/locales/en/messages.json +++ b/website/common/locales/en/messages.json @@ -42,7 +42,6 @@ "messageAuthPasswordMustMatch": ":password and :confirmPassword don't match", "messageAuthCredentialsRequired": ":username, :email, :password, :confirmPassword required", - "messageAuthUsernameTaken": "Username already taken", "messageAuthEmailTaken": "Email already taken", "messageAuthNoUserFound": "No user found.", "messageAuthMustBeLoggedIn": "You must be logged in.", diff --git a/website/server/libs/auth/index.js b/website/server/libs/auth/index.js index 675773f25d..072eb550c2 100644 --- a/website/server/libs/auth/index.js +++ b/website/server/libs/auth/index.js @@ -117,7 +117,7 @@ async function registerLocal (req, res, { isV3 = false }) { if (user) { if (email === user.auth.local.email) throw new NotAuthorized(res.t('emailTaken')); // Check that the lowercase username isn't already used - if (lowerCaseUsername === user.auth.local.lowerCaseUsername) throw new NotAuthorized(res.t('usernameTaken')); + if (lowerCaseUsername === user.auth.local.lowerCaseUsername && existingUser._id !== user._id) throw new NotAuthorized(res.t('usernameTaken')); } let hashed_password = await passwordUtils.bcryptHash(password); // eslint-disable-line camelcase