This commit is contained in:
Max Peintner
2025-06-11 10:04:16 +02:00
parent dbf458c685
commit 9959581666
11 changed files with 44 additions and 16 deletions

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Konto-Verknüpfung fehlgeschlagen", "title": "Konto-Verknüpfung fehlgeschlagen",
"description": "Beim Verknüpfen Ihres Kontos ist ein Fehler aufgetreten." "description": "Beim Verknüpfen Ihres Kontos ist ein Fehler aufgetreten."
},
"completeRegister": {
"title": "Registrierung abschließen",
"description": "Bitte vervollständige die Registrierung, um dein Konto zu erstellen."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Account linking failed", "title": "Account linking failed",
"description": "An error occurred while trying to link your account." "description": "An error occurred while trying to link your account."
},
"completeRegister": {
"title": "Complete your data",
"description": "You need to complete your registration by providing your email address and name."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Error al vincular la cuenta", "title": "Error al vincular la cuenta",
"description": "Ocurrió un error al intentar vincular tu cuenta." "description": "Ocurrió un error al intentar vincular tu cuenta."
},
"completeRegister": {
"title": "Completar registro",
"description": "Para completar el registro, debes establecer una contraseña."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Collegamento account fallito", "title": "Collegamento account fallito",
"description": "Si è verificato un errore durante il tentativo di collegare il tuo account." "description": "Si è verificato un errore durante il tentativo di collegare il tuo account."
},
"completeRegister": {
"title": "Completa la registrazione",
"description": "Completa la registrazione del tuo account."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Powiązanie konta nie powiodło się", "title": "Powiązanie konta nie powiodło się",
"description": "Wystąpił błąd podczas próby powiązania konta." "description": "Wystąpił błąd podczas próby powiązania konta."
},
"completeRegister": {
"title": "Ukończ rejestrację",
"description": "Ukończ rejestrację swojego konta."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "Ошибка привязки аккаунта", "title": "Ошибка привязки аккаунта",
"description": "Произошла ошибка при попытке привязать аккаунт." "description": "Произошла ошибка при попытке привязать аккаунт."
},
"completeRegister": {
"title": "Завершите регистрацию",
"description": "Завершите регистрацию вашего аккаунта."
} }
}, },
"mfa": { "mfa": {

View File

@@ -72,6 +72,10 @@
"linkingError": { "linkingError": {
"title": "账户链接失败", "title": "账户链接失败",
"description": "链接账户时发生错误。" "description": "链接账户时发生错误。"
},
"completeRegister": {
"title": "完成注册",
"description": "完成您的账户注册。"
} }
}, },
"mfa": { "mfa": {

View File

@@ -242,10 +242,9 @@ export default async function Page(props: {
: "Could not create user", : "Could not create user",
); );
} }
} } else if (options?.isCreationAllowed) {
// if no user was found, we will create a new user manually / redirect to the registration page
// if no user was found, we will create a new user manually / redirect to the registration page
if (options?.isCreationAllowed) {
return completeIDP({ return completeIDP({
branding, branding,
idpIntent: { idpIntentId: id, idpIntentToken: token }, idpIntent: { idpIntentId: id, idpIntentToken: token },

View File

@@ -28,8 +28,8 @@ export async function completeIDP({
return ( return (
<DynamicTheme branding={branding}> <DynamicTheme branding={branding}>
<div className="flex flex-col items-center space-y-4"> <div className="flex flex-col items-center space-y-4">
<h1>{t("loginSuccess.title")}</h1> <h1>{t("completeRegister.title")}</h1>
<p className="ztdl-p">{t("loginSuccess.description")}</p> <p className="ztdl-p">{t("completeRegister.description")}</p>
<RegisterFormIDPIncomplete <RegisterFormIDPIncomplete
userId={userId} userId={userId}

View File

@@ -7,7 +7,6 @@ import { useRouter } from "next/navigation";
import { useState } from "react"; import { useState } from "react";
import { FieldValues, useForm } from "react-hook-form"; import { FieldValues, useForm } from "react-hook-form";
import { Alert } from "./alert"; import { Alert } from "./alert";
import { AuthenticationMethod, methods } from "./authentication-method-radio";
import { BackButton } from "./back-button"; import { BackButton } from "./back-button";
import { Button, ButtonVariants } from "./button"; import { Button, ButtonVariants } from "./button";
import { TextInput } from "./input"; import { TextInput } from "./input";
@@ -51,7 +50,6 @@ export function RegisterFormIDPIncomplete({
}); });
const [loading, setLoading] = useState<boolean>(false); const [loading, setLoading] = useState<boolean>(false);
const [selected, setSelected] = useState<AuthenticationMethod>(methods[0]);
const [error, setError] = useState<string>(""); const [error, setError] = useState<string>("");
const router = useRouter(); const router = useRouter();
@@ -127,8 +125,6 @@ export function RegisterFormIDPIncomplete({
</div> </div>
</div> </div>
<p className="mt-4 ztdl-p mb-6 block text-left">{t("completeData")}</p>
{error && ( {error && (
<div className="py-4"> <div className="py-4">
<Alert>{error}</Alert> <Alert>{error}</Alert>

View File

@@ -167,17 +167,22 @@ export function RegisterForm({
onChange={setTosAndPolicyAccepted} onChange={setTosAndPolicyAccepted}
/> />
)} )}
<p className="mt-4 ztdl-p mb-6 block text-left">{t("selectMethod")}</p>
{/* show chooser if both methods are allowed */} {/* show chooser if both methods are allowed */}
{loginSettings && {loginSettings &&
loginSettings.allowUsernamePassword && loginSettings.allowUsernamePassword &&
loginSettings.passkeysType == PasskeysType.ALLOWED && ( loginSettings.passkeysType == PasskeysType.ALLOWED && (
<div className="pb-4"> <>
<AuthenticationMethodRadio <p className="mt-4 ztdl-p mb-6 block text-left">
selected={selected} {t("selectMethod")}
selectionChanged={setSelected} </p>
/>
</div> <div className="pb-4">
<AuthenticationMethodRadio
selected={selected}
selectionChanged={setSelected}
/>
</div>
</>
)} )}
{(!loginSettings?.allowUsernamePassword || {(!loginSettings?.allowUsernamePassword ||