fix: SAML fixes for uppercase email & GOOGLE → SAML idp switch (#14971)

* fix uppercase email slip

* fix google → SAML idp change
This commit is contained in:
Syed Ali Shahbaz
2024-05-10 15:09:45 +00:00
committed by GitHub
parent 039bf6d4e3
commit b1909337db
@@ -342,7 +342,8 @@ if (isSAMLLoginEnabled) {
return null;
}
const { id, firstName, lastName, email } = userInfo;
const { id, firstName, lastName } = userInfo;
const email = userInfo.email.toLowerCase();
let user = !email
? undefined
: await UserRepository.findByEmailAndIncludeProfilesAndPassword({ email });
@@ -844,7 +845,7 @@ export const AUTH_OPTIONS: AuthOptions = {
where: { email: existingUserWithEmail.email },
// also update email to the IdP email
data: {
email: user.email,
email: user.email.toLowerCase(),
identityProvider: idP,
identityProviderId: account.providerAccountId,
},
@@ -857,6 +858,19 @@ export const AUTH_OPTIONS: AuthOptions = {
}
} else if (existingUserWithEmail.identityProvider === IdentityProvider.CAL) {
return "/auth/error?error=use-password-login";
} else if (
existingUserWithEmail.identityProvider === IdentityProvider.GOOGLE &&
idP === IdentityProvider.SAML
) {
await prisma.user.update({
where: { email: existingUserWithEmail.email },
// also update email to the IdP email
data: {
email: user.email.toLowerCase(),
identityProvider: idP,
identityProviderId: account.providerAccountId,
},
});
}
return "/auth/error?error=use-identity-login";