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(),
};
}