From 38f1bad24cf801558a129beb16c24535d72fcb3b Mon Sep 17 00:00:00 2001 From: peintnermax Date: Thu, 12 Sep 2024 09:06:49 +0200 Subject: [PATCH] gitlab --- apps/login/src/lib/idp.ts | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/apps/login/src/lib/idp.ts b/apps/login/src/lib/idp.ts index cf98ad2281b..fb8386c2bdf 100644 --- a/apps/login/src/lib/idp.ts +++ b/apps/login/src/lib/idp.ts @@ -85,6 +85,34 @@ export type OIDC_USER = { }; }; +const GITLAB_MAPPING = (idp: IDPInformation) => { + const rawInfo = idp.rawInformation as { + name: string; + email: string; + email_verified: boolean; + }; + + return create(AddHumanUserRequestSchema, { + username: idp.userName, + email: { + email: rawInfo.email, + verification: { case: "isVerified", value: rawInfo.email_verified }, + }, + profile: { + displayName: rawInfo.name || idp.userName || "", + givenName: "", + familyName: "", + }, + idpLinks: [ + { + idpId: idp.idpId, + userId: idp.userId, + userName: idp.userName, + }, + ], + }); +}; + const OIDC_MAPPING = (idp: IDPInformation) => { const rawInfo = idp.rawInformation as OIDC_USER; @@ -163,8 +191,8 @@ export const PROVIDER_MAPPING: { ], }); }, - [IdentityProviderType.GITLAB]: OIDC_MAPPING, - [IdentityProviderType.GITLAB_SELF_HOSTED]: OIDC_MAPPING, + [IdentityProviderType.GITLAB]: GITLAB_MAPPING, + [IdentityProviderType.GITLAB_SELF_HOSTED]: GITLAB_MAPPING, [IdentityProviderType.OIDC]: OIDC_MAPPING, // check [IdentityProviderType.OAUTH]: OIDC_MAPPING,