diff --git a/apps/login/src/app/(login)/idp/ldap/page.tsx b/apps/login/src/app/(login)/idp/ldap/page.tsx index 105c6832e6..372c814525 100644 --- a/apps/login/src/app/(login)/idp/ldap/page.tsx +++ b/apps/login/src/app/(login)/idp/ldap/page.tsx @@ -46,7 +46,10 @@ export default async function Page(props: {

- + ); diff --git a/apps/login/src/components/ldap-username-password-form.tsx b/apps/login/src/components/ldap-username-password-form.tsx index b7653c5782..fe653ba077 100644 --- a/apps/login/src/components/ldap-username-password-form.tsx +++ b/apps/login/src/components/ldap-username-password-form.tsx @@ -18,9 +18,10 @@ type Inputs = { type Props = { idpId: string; + link?: boolean; }; -export function LDAPUsernamePasswordForm({ idpId }: Props) { +export function LDAPUsernamePasswordForm({ idpId, link }: Props) { const { register, handleSubmit, formState } = useForm({ mode: "onBlur", }); @@ -39,6 +40,7 @@ export function LDAPUsernamePasswordForm({ idpId }: Props) { idpId: idpId, username: values.loginName, password: values.password, + link: link, }) .catch(() => { setError("Could not start LDAP flow"); diff --git a/apps/login/src/lib/server/idp.ts b/apps/login/src/lib/server/idp.ts index 30ee0aa6fb..1925fe43d6 100644 --- a/apps/login/src/lib/server/idp.ts +++ b/apps/login/src/lib/server/idp.ts @@ -34,9 +34,6 @@ export async function redirectToIdp( const idpId = formData.get("id") as string; const provider = formData.get("provider") as string; - // const username = formData.get("username") as string; - // const password = formData.get("password") as string; - if (linkOnly) params.set("link", "true"); if (requestId) params.set("requestId", requestId); if (organization) params.set("organization", organization); @@ -194,6 +191,7 @@ type createNewSessionForLDAPCommand = { username: string; password: string; idpId: string; + link: boolean; }; export async function createNewSessionForLDAP( @@ -229,13 +227,17 @@ export async function createNewSessionForLDAP( const { userId, idpIntentId, idpIntentToken } = response.nextStep.value; + const params = new URLSearchParams({ + userId, + id: idpIntentId, + token: idpIntentToken, + }); + + if (command.link) { + params.set("link", "true"); + } + return { - redirect: - `/idp/ldap/success?` + - new URLSearchParams({ - userId, - id: idpIntentId, - token: idpIntentToken, - }).toString(), + redirect: `/idp/ldap/success?` + params.toString(), }; }