Merge pull request #1946 from Infisical/daniel/fix-username-unique-bug

Fix: Email confirmation during SAML login failing (edge-case)
This commit is contained in:
Daniel Hougaard
2024-06-12 04:39:32 +02:00
committed by GitHub
2 changed files with 13 additions and 3 deletions
@@ -231,7 +231,7 @@ export const authSignupServiceFactory = ({
const accessToken = jwt.sign( const accessToken = jwt.sign(
{ {
authMethod: AuthMethod.EMAIL, authMethod: authMethod || AuthMethod.EMAIL,
authTokenType: AuthTokenType.ACCESS_TOKEN, authTokenType: AuthTokenType.ACCESS_TOKEN,
userId: updateduser.info.id, userId: updateduser.info.id,
tokenVersionId: tokenSession.id, tokenVersionId: tokenSession.id,
@@ -244,7 +244,7 @@ export const authSignupServiceFactory = ({
const refreshToken = jwt.sign( const refreshToken = jwt.sign(
{ {
authMethod: AuthMethod.EMAIL, authMethod: authMethod || AuthMethod.EMAIL,
authTokenType: AuthTokenType.REFRESH_TOKEN, authTokenType: AuthTokenType.REFRESH_TOKEN,
userId: updateduser.info.id, userId: updateduser.info.id,
tokenVersionId: tokenSession.id, tokenVersionId: tokenSession.id,
+11 -1
View File
@@ -21,6 +21,7 @@ type TUserServiceFactoryDep = {
| "findOneUserAction" | "findOneUserAction"
| "createUserAction" | "createUserAction"
| "findUserEncKeyByUserId" | "findUserEncKeyByUserId"
| "delete"
>; >;
userAliasDAL: Pick<TUserAliasDALFactory, "find" | "insertMany">; userAliasDAL: Pick<TUserAliasDALFactory, "find" | "insertMany">;
orgMembershipDAL: Pick<TOrgMembershipDALFactory, "find" | "insertMany">; orgMembershipDAL: Pick<TOrgMembershipDALFactory, "find" | "insertMany">;
@@ -85,7 +86,7 @@ export const userServiceFactory = ({
tx tx
); );
// check if there are users with the same email. // check if there are verified users with the same email.
const users = await userDAL.find( const users = await userDAL.find(
{ {
email, email,
@@ -134,6 +135,15 @@ export const userServiceFactory = ({
); );
} }
} else { } else {
await userDAL.delete(
{
email,
isAccepted: false,
isEmailVerified: false
},
tx
);
// update current user's username to [email] // update current user's username to [email]
await userDAL.updateById( await userDAL.updateById(
user.id, user.id,