From 1d07fd7675b284ba90067710e81580beafb99092 Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Sat, 6 Mar 2021 23:03:03 +0100 Subject: [PATCH] Implement Error page --- .../build-keycloak-theme/generateFtl/error.ftl | 11 +++++++++++ .../build-keycloak-theme/generateFtl/info.ftl | 2 +- .../build-keycloak-theme/generateFtl/login.ftl | 1 + .../generateFtl/template.ftl | 1 - src/lib/components/Error.tsx | 17 +++++++++++------ src/lib/components/KcApp.tsx | 2 ++ src/lib/kcContext.ts | 9 ++++++--- 7 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/bin/build-keycloak-theme/generateFtl/error.ftl b/src/bin/build-keycloak-theme/generateFtl/error.ftl index ae6e107f..08ea014a 100644 --- a/src/bin/build-keycloak-theme/generateFtl/error.ftl +++ b/src/bin/build-keycloak-theme/generateFtl/error.ftl @@ -1,4 +1,15 @@ \ No newline at end of file diff --git a/src/bin/build-keycloak-theme/generateFtl/info.ftl b/src/bin/build-keycloak-theme/generateFtl/info.ftl index 275a6296..f5ea4258 100644 --- a/src/bin/build-keycloak-theme/generateFtl/info.ftl +++ b/src/bin/build-keycloak-theme/generateFtl/info.ftl @@ -31,7 +31,7 @@ "pageRedirectUri": "${(pageRedirectUri!'')?no_esc}" || undefined, "actionUri": "${(actionUri!'')?no_esc}" || undefined, "client": { - "baseUrl": "${(actionUri!'')?no_esc}" || undefined + "baseUrl": "${(client.baseUrl!'')?no_esc}" || undefined } } \ No newline at end of file diff --git a/src/bin/build-keycloak-theme/generateFtl/login.ftl b/src/bin/build-keycloak-theme/generateFtl/login.ftl index 803c96e3..f5ee8a4f 100644 --- a/src/bin/build-keycloak-theme/generateFtl/login.ftl +++ b/src/bin/build-keycloak-theme/generateFtl/login.ftl @@ -7,6 +7,7 @@ "realm": { "loginWithEmailAllowed": ${realm.loginWithEmailAllowed?c}, "rememberMe": ${realm.rememberMe?c}, + "password": ${realm.password?c}, "resetPasswordAllowed": ${realm.resetPasswordAllowed?c}, "registrationAllowed": ${realm.registrationAllowed?c} }, diff --git a/src/bin/build-keycloak-theme/generateFtl/template.ftl b/src/bin/build-keycloak-theme/generateFtl/template.ftl index c3c869e4..bcc55957 100644 --- a/src/bin/build-keycloak-theme/generateFtl/template.ftl +++ b/src/bin/build-keycloak-theme/generateFtl/template.ftl @@ -11,7 +11,6 @@ "displayName": "${realm.displayName!''}" || undefined, "displayNameHtml": "${realm.displayNameHtml!''}" || undefined, "internationalizationEnabled": ${realm.internationalizationEnabled?c}, - "password": ${realm.password?c}, "registrationEmailAsUsername": ${realm.registrationEmailAsUsername?c}, }, "locale": (function (){ diff --git a/src/lib/components/Error.tsx b/src/lib/components/Error.tsx index 337c924f..cfcd1ed0 100644 --- a/src/lib/components/Error.tsx +++ b/src/lib/components/Error.tsx @@ -24,12 +24,17 @@ export const Error = memo((props: KcProps) => { displayMessage={false} headerNode={t("errorTitle")} formNode={ -
-

{message.summary}

- <#if client?? && client.baseUrl?has_content> -

${kcSanitize(msg("backToApplication"))?no_esc}

- -
+
+

{message.summary}

+ { + client !== undefined && client.baseUrl !== undefined && +

+ + {t("backToApplication")} + +

+ } +
} /> ); diff --git a/src/lib/components/KcApp.tsx b/src/lib/components/KcApp.tsx index 11a712cf..d06ef9d5 100644 --- a/src/lib/components/KcApp.tsx +++ b/src/lib/components/KcApp.tsx @@ -6,6 +6,7 @@ import type { KcProps } from "./KcProps"; import { Login } from "./Login"; import { Register } from "./Register"; import { Info } from "./Info"; +import { Error } from "./Error"; export const KcApp = memo((props: KcProps) => { @@ -16,6 +17,7 @@ export const KcApp = memo((props: KcProps) => { case "login.ftl": return ; case "register.ftl": return ; case "info.ftl": return ; + case "error.ftl": return ; } }); \ No newline at end of file diff --git a/src/lib/kcContext.ts b/src/lib/kcContext.ts index 357c1ac9..3dfafc39 100644 --- a/src/lib/kcContext.ts +++ b/src/lib/kcContext.ts @@ -25,8 +25,7 @@ export declare namespace KcContext { displayName?: string; displayNameHtml?: string; internationalizationEnabled: boolean; - password: boolean; - registrationEmailAsUsername: boolean; + registrationEmailAsUsername: boolean; //<--- }; /** Undefined if !realm.internationalizationEnabled */ locale?: { @@ -63,6 +62,7 @@ export declare namespace KcContext { realm: { loginWithEmailAllowed: boolean; rememberMe: boolean; + password: boolean; resetPasswordAllowed: boolean; registrationAllowed: boolean; }; @@ -132,7 +132,10 @@ export declare namespace KcContext { }; export type Error = Template & { - pageId: "error.ftl" + pageId: "error.ftl"; + client?: { + baseUrl?: string; + } }; }