keycloakify 10.0.0-rc.2 → 10.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/Template.js +2 -2
- package/account/Template.js.map +1 -1
- package/account/i18n/i18n.d.ts +3 -4
- package/account/i18n/i18n.js +2 -3
- package/account/i18n/i18n.js.map +1 -1
- package/account/kcContext/KcContext.d.ts +0 -15
- package/account/kcContext/KcContext.js.map +1 -1
- package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +160 -243
- package/bin/keycloakify/generateFtl/generateFtl.js +1 -1
- package/bin/keycloakify/generateFtl/generateFtl.js.map +1 -1
- package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +2 -0
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js +9 -12
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +1 -1
- package/bin/keycloakify/keycloakify.js +1 -0
- package/bin/keycloakify/keycloakify.js.map +1 -1
- package/login/Template.js +2 -2
- package/login/Template.js.map +1 -1
- package/login/UserProfileFormFields.js +2 -4
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/i18n/i18n.d.ts +3 -4
- package/login/i18n/i18n.js +2 -3
- package/login/i18n/i18n.js.map +1 -1
- package/login/lib/useUserProfileForm.js +9 -9
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.js +1 -1
- package/login/pages/Code.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Login.js +1 -1
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginUpdateProfile.js +1 -1
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.js +1 -1
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/Register.js +1 -1
- package/login/pages/Register.js.map +1 -1
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnRegister.js +1 -1
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +1 -7
- package/src/account/Template.tsx +2 -5
- package/src/account/i18n/i18n.tsx +5 -8
- package/src/account/kcContext/KcContext.ts +0 -15
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +160 -243
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -1
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +13 -14
- package/src/bin/keycloakify/keycloakify.ts +1 -0
- package/src/login/Template.tsx +6 -22
- package/src/login/UserProfileFormFields.tsx +2 -5
- package/src/login/i18n/i18n.tsx +5 -8
- package/src/login/lib/useUserProfileForm.tsx +10 -10
- package/src/login/pages/Code.tsx +1 -1
- package/src/login/pages/IdpReviewUserProfile.tsx +1 -1
- package/src/login/pages/Login.tsx +1 -1
- package/src/login/pages/LoginUpdateProfile.tsx +1 -1
- package/src/login/pages/LoginUsername.tsx +1 -1
- package/src/login/pages/Register.tsx +1 -1
- package/src/login/pages/UpdateEmail.tsx +1 -1
- package/src/login/pages/WebauthnRegister.tsx +1 -1
- package/bin/tools/grant-exec-perms.d.ts +0 -1
- package/bin/tools/grant-exec-perms.js +0 -100
- package/bin/tools/grant-exec-perms.js.map +0 -1
- package/src/bin/tools/grant-exec-perms.ts +0 -19
package/account/Template.js
CHANGED
@@ -9,7 +9,7 @@ const { useInsertLinkTags } = createUseInsertLinkTags();
|
|
9
9
|
export default function Template(props) {
|
10
10
|
const { kcContext, i18n, doUseDefaultCss, active, classes, children } = props;
|
11
11
|
const { getClassName } = useGetClassName({ doUseDefaultCss, classes });
|
12
|
-
const { msg, msgStr,
|
12
|
+
const { msg, msgStr, getChangeLocalUrl, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
|
13
13
|
const { locale, url, features, realm, message, referrer } = kcContext;
|
14
14
|
useEffect(() => {
|
15
15
|
document.title = msgStr("accountManagementTitle");
|
@@ -43,6 +43,6 @@ export default function Template(props) {
|
|
43
43
|
if (!areAllStyleSheetsLoaded) {
|
44
44
|
return null;
|
45
45
|
}
|
46
|
-
return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [realm.internationalizationEnabled && (assert(locale !== undefined), true) && locale.supported.length > 1 && (_jsx("li", { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: labelBySupportedLanguageTag[currentLanguageTag] })), _jsx("ul", { children: locale.supported.map(({ languageTag }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href:
|
46
|
+
return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [realm.internationalizationEnabled && (assert(locale !== undefined), true) && locale.supported.length > 1 && (_jsx("li", { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: labelBySupportedLanguageTag[currentLanguageTag] })), _jsx("ul", { children: locale.supported.map(({ languageTag }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href: getChangeLocalUrl(languageTag) }, { children: labelBySupportedLanguageTag[languageTag] })) }), languageTag))) })] })) })), (referrer === null || referrer === void 0 ? void 0 : referrer.url) && (_jsx("li", { children: _jsx("a", Object.assign({ href: referrer.url, id: "referrer" }, { children: msg("backTo", referrer.name) })) })), _jsx("li", { children: _jsx("a", Object.assign({ href: url.getLogoutUrl() }, { children: msg("doSignOut") })) })] })) })) }))] })) })), _jsxs("div", Object.assign({ className: "container" }, { children: [_jsx("div", Object.assign({ className: "bs-sidebar col-sm-3" }, { children: _jsxs("ul", { children: [_jsx("li", Object.assign({ className: clsx(active === "account" && "active") }, { children: _jsx("a", Object.assign({ href: url.accountUrl }, { children: msg("account") })) })), features.passwordUpdateSupported && (_jsx("li", Object.assign({ className: clsx(active === "password" && "active") }, { children: _jsx("a", Object.assign({ href: url.passwordUrl }, { children: msg("password") })) }))), _jsx("li", Object.assign({ className: clsx(active === "totp" && "active") }, { children: _jsx("a", Object.assign({ href: url.totpUrl }, { children: msg("authenticator") })) })), features.identityFederation && (_jsx("li", Object.assign({ className: clsx(active === "social" && "active") }, { children: _jsx("a", Object.assign({ href: url.socialUrl }, { children: msg("federatedIdentity") })) }))), _jsx("li", Object.assign({ className: clsx(active === "sessions" && "active") }, { children: _jsx("a", Object.assign({ href: url.sessionsUrl }, { children: msg("sessions") })) })), _jsx("li", Object.assign({ className: clsx(active === "applications" && "active") }, { children: _jsx("a", Object.assign({ href: url.applicationsUrl }, { children: msg("applications") })) })), features.log && (_jsx("li", Object.assign({ className: clsx(active === "log" && "active") }, { children: _jsx("a", Object.assign({ href: url.logUrl }, { children: msg("log") })) }))), realm.userManagedAccessAllowed && features.authorization && (_jsx("li", Object.assign({ className: clsx(active === "authorization" && "active") }, { children: _jsx("a", Object.assign({ href: url.resourceUrl }, { children: msg("myResources") })) })))] }) })), _jsxs("div", Object.assign({ className: "col-sm-9 content-area" }, { children: [message !== undefined && (_jsxs("div", Object.assign({ className: clsx("alert", `alert-${message.type}`) }, { children: [message.type === "success" && _jsx("span", { className: "pficon pficon-ok" }), message.type === "error" && _jsx("span", { className: "pficon pficon-error-circle-o" }), _jsx("span", Object.assign({ className: "kc-feedback-text" }, { children: message.summary }))] }))), children] }))] }))] }));
|
47
47
|
}
|
48
48
|
//# sourceMappingURL=Template.js.map
|
package/account/Template.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGpE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,MAAM,EAAE,iBAAiB,EAAE,GAAG,uBAAuB,EAAE,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAqC;IAClE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE9E,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAEvE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":"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"}
|
package/account/i18n/i18n.d.ts
CHANGED
@@ -21,11 +21,10 @@ export type GenericI18n<MessageKey extends string> = {
|
|
21
21
|
*/
|
22
22
|
currentLanguageTag: string;
|
23
23
|
/**
|
24
|
-
*
|
25
|
-
*
|
26
|
-
* on next load currentLanguageTag === newLanguageTag
|
24
|
+
* Redirect to this url to change the language.
|
25
|
+
* After reload currentLanguageTag === newLanguageTag
|
27
26
|
*/
|
28
|
-
|
27
|
+
getChangeLocalUrl: (newLanguageTag: string) => string;
|
29
28
|
/**
|
30
29
|
* e.g. "en" => "English", "fr" => "Français", ...
|
31
30
|
*
|
package/account/i18n/i18n.js
CHANGED
@@ -24,13 +24,12 @@ export function createUseI18n(extraMessages) {
|
|
24
24
|
setI18n(Object.assign(Object.assign({}, createI18nTranslationFunctions({
|
25
25
|
"fallbackMessages": Object.assign(Object.assign(Object.assign({}, fallbackMessages), ((_b = keycloakifyExtraMessages[fallbackLanguageTag]) !== null && _b !== void 0 ? _b : {})), ((_c = extraMessages[fallbackLanguageTag]) !== null && _c !== void 0 ? _c : {})),
|
26
26
|
"messages": Object.assign(Object.assign(Object.assign({}, (await getMessages(currentLanguageTag))), ((_d = keycloakifyExtraMessages[currentLanguageTag]) !== null && _d !== void 0 ? _d : {})), ((_e = extraMessages[currentLanguageTag]) !== null && _e !== void 0 ? _e : {}))
|
27
|
-
})), { currentLanguageTag, "
|
27
|
+
})), { currentLanguageTag, "getChangeLocalUrl": newLanguageTag => {
|
28
28
|
const { locale } = kcContext;
|
29
29
|
assert(locale !== undefined, "Internationalization not enabled");
|
30
30
|
const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
|
31
31
|
assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
|
32
|
-
|
33
|
-
assert(false, "never");
|
32
|
+
return targetSupportedLocale.url;
|
34
33
|
}, "labelBySupportedLanguageTag": Object.fromEntries(((_g = (_f = kcContext.locale) === null || _f === void 0 ? void 0 : _f.supported) !== null && _g !== void 0 ? _g : []).map(({ languageTag, label }) => [languageTag, label])) }));
|
35
34
|
})();
|
36
35
|
}, []);
|
package/account/i18n/i18n.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/account/i18n/i18n.tsx"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAC;AAC9C,kIAAkI;AAClI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AASxC,MAAM,EAAkD,CAAC;
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/account/i18n/i18n.tsx"],"names":[],"mappings":";AAAA,OAAO,sCAAsC,CAAC;AAC9C,kIAAkI;AAClI,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,gBAAgB,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AASxC,MAAM,EAAkD,CAAC;AAqDzD,MAAM,UAAU,aAAa,CAAyC,aAErE;IACG,SAAS,OAAO,CAAC,MAAoC;QACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAwD,SAAS,CAAC,CAAC;QAEnG,MAAM,qBAAqB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5C,SAAS,CAAC,GAAG,EAAE;YACX,IAAI,qBAAqB,CAAC,OAAO,EAAE;gBAC/B,OAAO;aACV;YAED,qBAAqB,CAAC,OAAO,GAAG,IAAI,CAAC;YAErC,CAAC,KAAK,IAAI,EAAE;;gBACR,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,GAAG,MAAA,SAAS,CAAC,MAAM,mCAAI,EAAE,CAAC;gBAE5E,OAAO,iCACA,8BAA8B,CAAC;oBAC9B,kBAAkB,EAAE,8CACb,gBAAgB,GAChB,CAAC,MAAA,wBAAwB,CAAC,mBAAmB,CAAC,mCAAI,EAAE,CAAC,GACrD,CAAC,MAAA,aAAa,CAAC,mBAAmB,CAAC,mCAAI,EAAE,CAAC,CACzC;oBACR,UAAU,EAAE,8CACL,CAAC,MAAM,WAAW,CAAC,kBAAkB,CAAC,CAAC,GACvC,CAAC,MAAC,wBAAgC,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAC,GAC7D,CAAC,MAAA,aAAa,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAC,CACxC;iBACX,CAAC,KACF,kBAAkB,EAClB,mBAAmB,EAAE,cAAc,CAAC,EAAE;wBAClC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;wBAE7B,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,kCAAkC,CAAC,CAAC;wBAEjE,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC;wBAEzG,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,GAAG,cAAc,uCAAuC,CAAC,CAAC;wBAEtG,OAAO,qBAAqB,CAAC,GAAG,CAAC;oBACrC,CAAC,EACD,6BAA6B,EAAE,MAAM,CAAC,WAAW,CAC7C,CAAC,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAC5F,IACH,CAAC;YACP,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,8BAA8B,CAA4B,MAGlE;IACG,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE9C,SAAS,UAAU,CAAC,KAA+E;;QAC/F,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;QAE9C,MAAM,kBAAkB,GAAuB,MAAC,QAAgB,CAAC,GAAG,CAAC,mCAAK,gBAAwB,CAAC,GAAG,CAAC,CAAC;QAExG,IAAI,kBAAkB,KAAK,SAAS,EAAE;YAClC,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC;QAEnC,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE;;YACvC,MAAM,UAAU,GAAG,MAAA,OAAO;iBACrB,KAAK,CAAC,WAAW,CAAC,0CACjB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC,CAAC,CAAC,EACnC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAE9B,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC1B,4CAA4C;gBAC5C,OAAO,OAAO,CAAC;aAClB;YAED,IAAI,uBAAuB,GAAG,OAAO,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACpB,IAAI,GAAG,KAAK,SAAS,EAAE;oBACnB,OAAO;iBACV;gBAED,uBAAuB,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;YAEH,OAAO,uBAAuB,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,gBAAgB,CAAC,CAAC,CAAC,CACtB,KAAC,QAAQ,kBAAC,kBAAkB,QAAC,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,gBAC1D,4BAA4B,IACtB,CACd,CAAC,CAAC,CAAC,CACA,4BAA4B,CAC/B,CAAC;IACN,CAAC;IAED,SAAS,kBAAkB,CAAC,KAA+E;QACvG,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;QAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3C,MAAM,2BAA2B,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEpE,MAAM,GAAG,GAAG,UAAU,CAAC;YACnB,KAAK,EAAE,2BAA2B;YAClC,IAAI;YACJ,gBAAgB;SACnB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAO,2BAA2B,GAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAQ,CAAC;IAC1I,CAAC;IAED,OAAO;QACH,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAW;QAC1F,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAgB;QAC3F,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAgB;QAC3G,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAW;KAC7G,CAAC;AACN,CAAC;AAED,MAAM,wBAAwB,GAAG;IAC7B,IAAI,EAAE;QACF,eAAe,EAAE,4BAA4B;QAC7C,mBAAmB,EAAE,gCAAgC;QACrD,oBAAoB,EAAE,+BAA+B;QACrD,iBAAiB,EAAE,oBAAoB;QACvC,iBAAiB,EAAE,oBAAoB;QACvC,sBAAsB,EAAE,iDAAiD;QACzE,yBAAyB,EAAE,sCAAsC;KACpE;IACD,IAAI,EAAE;QACF,4BAA4B;QAC5B,eAAe,EAAE,0BAA0B;QAC3C,mBAAmB,EAAE,gCAAgC;QACrD,oBAAoB,EAAE,mCAAmC;QACzD,iBAAiB,EAAE,4BAA4B;QAC/C,iBAAiB,EAAE,6BAA6B;QAEhD,oBAAoB,EAAE,aAAa;QACnC,qBAAqB,EAAE,gDAAgD;QACvE,UAAU,EAAE,gBAAgB;QAC5B,sBAAsB,EAAE,yDAAyD;QACjF,yBAAyB,EAAE,mDAAmD;QAC9E,2BAA2B;KAC9B;CACJ,CAAC"}
|
@@ -153,21 +153,6 @@ export declare namespace KcContext {
|
|
153
153
|
};
|
154
154
|
mode?: "qr" | "manual" | undefined | null;
|
155
155
|
isAppInitiatedAction: boolean;
|
156
|
-
url: {
|
157
|
-
accountUrl: string;
|
158
|
-
passwordUrl: string;
|
159
|
-
totpUrl: string;
|
160
|
-
socialUrl: string;
|
161
|
-
sessionsUrl: string;
|
162
|
-
applicationsUrl: string;
|
163
|
-
logUrl: string;
|
164
|
-
resourceUrl: string;
|
165
|
-
resourcesCommonPath: string;
|
166
|
-
resourcesPath: string;
|
167
|
-
/** @deprecated, not present in recent keycloak version apparently, use kcContext.referrer instead */
|
168
|
-
referrerURI?: string;
|
169
|
-
getLogoutUrl: () => string;
|
170
|
-
};
|
171
156
|
stateChecker: string;
|
172
157
|
};
|
173
158
|
type Applications = Common & {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"KcContext.js","sourceRoot":"","sources":["../../src/account/kcContext/KcContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAuPtC;IAOI,MAAM,EAA4B,CAAC;IACnC,MAAM,EAAiC,CAAC;CAC3C;AAED,MAAM,EAA2D,CAAC"}
|
@@ -1,291 +1,189 @@
|
|
1
1
|
<script>const _=
|
2
|
-
<#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
|
3
2
|
(()=>{
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<#
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
<#
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
<#attempt>
|
39
|
-
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
40
|
-
<#recover>
|
41
|
-
<#assign doExistErrorOnUsernameOrPassword = true>
|
42
|
-
</#attempt>
|
43
|
-
|
44
|
-
<#if doExistErrorOnUsernameOrPassword>
|
45
|
-
return text;
|
46
|
-
<#else>
|
47
|
-
|
48
|
-
<#assign doExistMessageForField = "">
|
49
|
-
|
50
|
-
<#attempt>
|
51
|
-
<#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
|
52
|
-
<#recover>
|
53
|
-
<#assign doExistMessageForField = true>
|
54
|
-
</#attempt>
|
55
|
-
|
56
|
-
return <#if doExistMessageForField>text<#else>undefined</#if>;
|
57
|
-
|
58
|
-
</#if>
|
59
|
-
|
3
|
+
<#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
|
4
|
+
const out = ${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc};
|
5
|
+
out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
|
6
|
+
out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
|
7
|
+
out["messagesPerField"]= {
|
8
|
+
<#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]>
|
9
|
+
<#attempt>
|
10
|
+
<#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
|
11
|
+
<#list profile.attributes as attribute>
|
12
|
+
<#if fieldNames?seq_contains(attribute.name)>
|
13
|
+
<#continue>
|
14
|
+
</#if>
|
15
|
+
<#assign fieldNames += [attribute.name]>
|
16
|
+
</#list>
|
17
|
+
</#if>
|
18
|
+
<#recover>
|
19
|
+
</#attempt>
|
20
|
+
"printIfExists": function (fieldName, text) {
|
21
|
+
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
|
22
|
+
throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
|
23
|
+
<#else>
|
24
|
+
<#list fieldNames as fieldName>
|
25
|
+
if(fieldName === "${fieldName}" ){
|
26
|
+
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
|
27
|
+
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
|
28
|
+
<#assign doExistErrorOnUsernameOrPassword = "">
|
29
|
+
<#attempt>
|
30
|
+
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
31
|
+
<#recover>
|
32
|
+
<#assign doExistErrorOnUsernameOrPassword = true>
|
33
|
+
</#attempt>
|
34
|
+
<#if doExistErrorOnUsernameOrPassword>
|
35
|
+
return text;
|
60
36
|
<#else>
|
61
|
-
|
62
37
|
<#assign doExistMessageForField = "">
|
63
|
-
|
64
38
|
<#attempt>
|
65
39
|
<#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
|
66
40
|
<#recover>
|
67
41
|
<#assign doExistMessageForField = true>
|
68
42
|
</#attempt>
|
69
|
-
|
70
43
|
return <#if doExistMessageForField>text<#else>undefined</#if>;
|
71
|
-
|
72
44
|
</#if>
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
"existsError": function (){
|
83
|
-
|
84
|
-
function existsError_singleFieldName(fieldName) {
|
85
|
-
|
86
|
-
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
|
87
|
-
throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
|
88
|
-
<#else>
|
89
|
-
<#list fieldNames as fieldName>
|
90
|
-
if(fieldName === "${fieldName}" ){
|
91
|
-
|
92
|
-
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
|
93
|
-
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
|
94
|
-
|
95
|
-
<#assign doExistErrorOnUsernameOrPassword = "">
|
96
|
-
|
97
|
-
<#attempt>
|
98
|
-
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
99
|
-
<#recover>
|
100
|
-
<#assign doExistErrorOnUsernameOrPassword = true>
|
101
|
-
</#attempt>
|
102
|
-
|
103
|
-
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
|
104
|
-
|
105
|
-
<#else>
|
106
|
-
|
107
|
-
<#assign doExistErrorMessageForField = "">
|
108
|
-
|
109
|
-
<#attempt>
|
110
|
-
<#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
|
111
|
-
<#recover>
|
112
|
-
<#assign doExistErrorMessageForField = true>
|
113
|
-
</#attempt>
|
114
|
-
|
115
|
-
return <#if doExistErrorMessageForField>true<#else>false</#if>;
|
116
|
-
|
117
|
-
</#if>
|
118
|
-
|
119
|
-
}
|
120
|
-
</#list>
|
121
|
-
|
122
|
-
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
123
|
-
|
124
|
-
</#if>
|
125
|
-
|
126
|
-
}
|
127
|
-
|
128
|
-
for( let i = 0; i < arguments.length; i++ ){
|
129
|
-
|
130
|
-
if( existsError_singleFieldName(arguments[i]) ){
|
131
|
-
return true;
|
45
|
+
<#else>
|
46
|
+
<#assign doExistMessageForField = "">
|
47
|
+
<#attempt>
|
48
|
+
<#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
|
49
|
+
<#recover>
|
50
|
+
<#assign doExistMessageForField = true>
|
51
|
+
</#attempt>
|
52
|
+
return <#if doExistMessageForField>text<#else>undefined</#if>;
|
53
|
+
</#if>
|
132
54
|
}
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
"get": function (fieldName) {
|
140
|
-
|
141
|
-
|
55
|
+
</#list>
|
56
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
57
|
+
</#if>
|
58
|
+
},
|
59
|
+
"existsError": function (){
|
60
|
+
function existsError_singleFieldName(fieldName) {
|
142
61
|
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
|
143
|
-
throw new Error("You're not supposed to use messagesPerField.
|
62
|
+
throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
|
144
63
|
<#else>
|
145
64
|
<#list fieldNames as fieldName>
|
146
65
|
if(fieldName === "${fieldName}" ){
|
147
|
-
|
148
66
|
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
|
149
67
|
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
|
150
|
-
|
151
68
|
<#assign doExistErrorOnUsernameOrPassword = "">
|
152
|
-
|
153
69
|
<#attempt>
|
154
70
|
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
155
71
|
<#recover>
|
156
72
|
<#assign doExistErrorOnUsernameOrPassword = true>
|
157
73
|
</#attempt>
|
158
|
-
|
159
|
-
<#if doExistErrorOnUsernameOrPassword>
|
160
|
-
|
161
|
-
<#attempt>
|
162
|
-
return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
|
163
|
-
<#recover>
|
164
|
-
return "Invalid username or password.";
|
165
|
-
</#attempt>
|
166
|
-
|
167
|
-
<#else>
|
168
|
-
|
169
|
-
<#attempt>
|
170
|
-
return "${messagesPerField.get('${fieldName}')?no_esc}";
|
171
|
-
<#recover>
|
172
|
-
return "";
|
173
|
-
</#attempt>
|
174
|
-
|
175
|
-
</#if>
|
176
|
-
|
74
|
+
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
|
177
75
|
<#else>
|
178
|
-
|
76
|
+
<#assign doExistErrorMessageForField = "">
|
179
77
|
<#attempt>
|
180
|
-
|
78
|
+
<#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
|
181
79
|
<#recover>
|
182
|
-
|
80
|
+
<#assign doExistErrorMessageForField = true>
|
183
81
|
</#attempt>
|
184
|
-
|
82
|
+
return <#if doExistErrorMessageForField>true<#else>false</#if>;
|
185
83
|
</#if>
|
186
|
-
|
187
84
|
}
|
188
85
|
</#list>
|
189
|
-
|
190
86
|
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
191
|
-
|
192
87
|
</#if>
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
88
|
+
}
|
89
|
+
for( let i = 0; i < arguments.length; i++ ){
|
90
|
+
if( existsError_singleFieldName(arguments[i]) ){
|
91
|
+
return true;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
return false;
|
95
|
+
},
|
96
|
+
"get": function (fieldName) {
|
97
|
+
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
|
98
|
+
throw new Error("You're not supposed to use messagesPerField.get in this page");
|
99
|
+
<#else>
|
100
|
+
<#list fieldNames as fieldName>
|
101
|
+
if(fieldName === "${fieldName}" ){
|
102
|
+
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
|
103
|
+
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
|
104
|
+
<#assign doExistErrorOnUsernameOrPassword = "">
|
105
|
+
<#attempt>
|
106
|
+
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
107
|
+
<#recover>
|
108
|
+
<#assign doExistErrorOnUsernameOrPassword = true>
|
109
|
+
</#attempt>
|
110
|
+
<#if doExistErrorOnUsernameOrPassword>
|
208
111
|
<#attempt>
|
209
|
-
|
112
|
+
return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
|
210
113
|
<#recover>
|
211
|
-
|
114
|
+
return "Invalid username or password.";
|
212
115
|
</#attempt>
|
213
|
-
|
214
|
-
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
|
215
|
-
|
216
116
|
<#else>
|
217
|
-
|
218
|
-
<#assign doExistErrorMessageForField = "">
|
219
|
-
|
220
117
|
<#attempt>
|
221
|
-
|
118
|
+
return "${messagesPerField.get('${fieldName}')?no_esc}";
|
222
119
|
<#recover>
|
223
|
-
|
120
|
+
return "";
|
224
121
|
</#attempt>
|
225
|
-
|
226
|
-
return <#if doExistErrorMessageForField>true<#else>false</#if>;
|
227
|
-
|
228
122
|
</#if>
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
},
|
237
|
-
"getFirstError": function () {
|
238
|
-
|
239
|
-
for( let i = 0; i < arguments.length; i++ ){
|
240
|
-
|
241
|
-
const fieldName = arguments[i];
|
242
|
-
|
243
|
-
if( out.messagesPerField.existsError(fieldName) ){
|
244
|
-
return out.messagesPerField.get(fieldName);
|
123
|
+
<#else>
|
124
|
+
<#attempt>
|
125
|
+
return "${messagesPerField.get('${fieldName}')?no_esc}";
|
126
|
+
<#recover>
|
127
|
+
return "invalid field";
|
128
|
+
</#attempt>
|
129
|
+
</#if>
|
245
130
|
}
|
246
|
-
|
131
|
+
</#list>
|
132
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
133
|
+
</#if>
|
134
|
+
},
|
135
|
+
"exists": function (fieldName) {
|
136
|
+
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
|
137
|
+
throw new Error("You're not supposed to use messagesPerField.exists in this page");
|
138
|
+
<#else>
|
139
|
+
<#list fieldNames as fieldName>
|
140
|
+
if(fieldName === "${fieldName}" ){
|
141
|
+
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
|
142
|
+
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
|
143
|
+
<#assign doExistErrorOnUsernameOrPassword = "">
|
144
|
+
<#attempt>
|
145
|
+
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
|
146
|
+
<#recover>
|
147
|
+
<#assign doExistErrorOnUsernameOrPassword = true>
|
148
|
+
</#attempt>
|
149
|
+
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
|
150
|
+
<#else>
|
151
|
+
<#assign doExistErrorMessageForField = "">
|
152
|
+
<#attempt>
|
153
|
+
<#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
|
154
|
+
<#recover>
|
155
|
+
<#assign doExistErrorMessageForField = true>
|
156
|
+
</#attempt>
|
157
|
+
return <#if doExistErrorMessageForField>true<#else>false</#if>;
|
158
|
+
</#if>
|
159
|
+
}
|
160
|
+
</#list>
|
161
|
+
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
|
162
|
+
</#if>
|
163
|
+
},
|
164
|
+
"getFirstError": function () {
|
165
|
+
for( let i = 0; i < arguments.length; i++ ){
|
166
|
+
const fieldName = arguments[i];
|
167
|
+
if( out.messagesPerField.existsError(fieldName) ){
|
168
|
+
return out.messagesPerField.get(fieldName);
|
247
169
|
}
|
248
|
-
|
249
170
|
}
|
250
|
-
}
|
251
|
-
|
252
|
-
<#if account??>
|
253
|
-
out["url"]["getLogoutUrl"] = function () {
|
254
|
-
<#attempt>
|
255
|
-
return "${url.getLogoutUrl()}";
|
256
|
-
<#recover>
|
257
|
-
throw new Error("Failed to invoke url.getLogoutUrl() in the FreeMarker template");
|
258
|
-
</#attempt>
|
259
|
-
};
|
260
|
-
</#if>
|
261
|
-
|
262
|
-
<#if pageId === "login-config-totp.ftl">
|
263
|
-
out["totp"]["policy"]["getAlgorithmKey"] = function () {
|
264
|
-
<#attempt>
|
265
|
-
return "${totp.policy.getAlgorithmKey()}";
|
266
|
-
<#recover>
|
267
|
-
throw new Error("Failed to invoke totp.policy.getAlgorithmKey() in the FreeMarker template");
|
268
|
-
</#attempt>
|
269
|
-
};
|
270
|
-
</#if>
|
271
|
-
|
272
|
-
out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr";
|
273
|
-
out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx";
|
274
|
-
out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr";
|
275
|
-
out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer";
|
276
|
-
out["pageId"] = "${pageId}";
|
277
|
-
|
278
|
-
try {
|
171
|
+
}
|
172
|
+
};
|
279
173
|
|
280
|
-
|
174
|
+
out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr";
|
175
|
+
out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx";
|
176
|
+
out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr";
|
177
|
+
out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer";
|
178
|
+
out["pageId"] = "${pageId}";
|
281
179
|
|
282
|
-
|
180
|
+
try {
|
181
|
+
out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "RESOURCES_COMMON_cLsLsMrtDkpVv";
|
182
|
+
} catch(error) { }
|
283
183
|
|
284
|
-
|
184
|
+
return out;
|
285
185
|
|
286
|
-
|
287
|
-
|
288
|
-
})()
|
186
|
+
})();
|
289
187
|
<#function ftl_object_to_js_code_declaring_an_object object path>
|
290
188
|
|
291
189
|
<#local isHash = "">
|
@@ -309,7 +207,6 @@
|
|
309
207
|
<#return "ABORT: We can't list keys on this object">
|
310
208
|
</#attempt>
|
311
209
|
|
312
|
-
|
313
210
|
<#local out_seq = []>
|
314
211
|
|
315
212
|
<#list keys as key>
|
@@ -378,7 +275,7 @@
|
|
378
275
|
key == "realmAttributes"
|
379
276
|
)
|
380
277
|
>
|
381
|
-
<#local out_seq += ["/*
|
278
|
+
<#local out_seq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
382
279
|
<#continue>
|
383
280
|
</#if>
|
384
281
|
|
@@ -390,7 +287,7 @@
|
|
390
287
|
<#attempt>
|
391
288
|
<#-- https://github.com/keycloak/keycloak/blob/3a2bf0c04bcde185e497aaa32d0bb7ab7520cf4a/themes/src/main/resources/theme/base/login/template.ftl#L63 -->
|
392
289
|
<#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
|
393
|
-
<#local out_seq += ["/*
|
290
|
+
<#local out_seq += ["/*" + path?join(".") + "." + key + " excluded*/"]>
|
394
291
|
<#continue>
|
395
292
|
</#if>
|
396
293
|
<#recover>
|
@@ -470,6 +367,26 @@
|
|
470
367
|
</#attempt>
|
471
368
|
</#if>
|
472
369
|
|
370
|
+
<#if are_same_path(path, ["url", "getLogoutUrl"])>
|
371
|
+
<#local returnValue = "">
|
372
|
+
<#attempt>
|
373
|
+
<#local returnValue = url.getLogoutUrl()>
|
374
|
+
<#recover>
|
375
|
+
<#return "ABORT: Couldn't evaluate url.getLogoutUrl()">
|
376
|
+
</#attempt>
|
377
|
+
<#return 'function(){ return "' + returnValue + '"; }'>
|
378
|
+
</#if>
|
379
|
+
|
380
|
+
<#if are_same_path(path, ["totp", "policy", "getAlgorithmKey"])>
|
381
|
+
<#local returnValue = "">
|
382
|
+
<#attempt>
|
383
|
+
<#local returnValue = totp.policy.getAlgorithmKey()>
|
384
|
+
<#recover>
|
385
|
+
<#return "ABORT: Couldn't evaluate totp.policy.getAlgorithmKey()">
|
386
|
+
</#attempt>
|
387
|
+
<#return 'function(){ return "' + returnValue + '"; }'>
|
388
|
+
</#if>
|
389
|
+
|
473
390
|
<#return "ABORT: It's a method">
|
474
391
|
</#if>
|
475
392
|
|