diff --git a/package.json b/package.json index 0529bbb7..f3b00f22 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "i18nifty": "^1.3.26", "jwt-decode": "^3.1.2", "keycloak-js": "^21.0.2", - "keycloakify": "7.9.0-rc.0", + "keycloakify": "^7.9.2", "memoizee": "^0.4.14", "moment": "^2.29.1", "path": "^0.12.7", diff --git a/src/core/adapter/oidc.ts b/src/core/adapter/oidc.ts index b45136b3..a910e02c 100644 --- a/src/core/adapter/oidc.ts +++ b/src/core/adapter/oidc.ts @@ -33,14 +33,18 @@ export async function createOidc(params: { "checkLoginIframe": false, "adapter": createKeycloakAdapter({ "transformUrlBeforeRedirect": url => - [url].map(transformUrlBeforeRedirect).map( - url => - addParamToUrl({ - url, - "name": "ui_locales", - "value": getUiLocales() - }).newUrl - )[0], + // prettier-ignore + [url] + .map(transformUrlBeforeRedirect) + .map( + url => + addParamToUrl({ + url, + "name": "ui_locales", + "value": getUiLocales() + }).newUrl + ) + [0], keycloakInstance, "getRedirectMethod": () => redirectMethod }) diff --git a/src/core/usecases/userAccountManagement.ts b/src/core/usecases/userAccountManagement.ts index b9128c3a..0627d414 100644 --- a/src/core/usecases/userAccountManagement.ts +++ b/src/core/usecases/userAccountManagement.ts @@ -148,13 +148,17 @@ export const thunks = { "passwordResetUrlWithoutLangParam": keycloakParams === undefined ? undefined - : [ - keycloakParams.url.replace(/\/$/, ""), - "realms", - keycloakParams.realm, - "account", - "password" - ].join("/"), + : addParamToUrl({ + "url": [ + keycloakParams.url.replace(/\/$/, ""), + "realms", + keycloakParams.realm, + "account", + "password" + ].join("/"), + "name": "referrer", + "value": keycloakParams.clientId + }).newUrl, allOrganizations }) ); @@ -195,13 +199,29 @@ export const thunks = { assert(state.passwordResetUrlWithoutLangParam !== undefined); - const { newUrl } = addParamToUrl({ - "url": state.passwordResetUrlWithoutLangParam, - "name": "kc_locale", - "value": lang - }); + let url = state.passwordResetUrlWithoutLangParam; - return newUrl; + { + const { newUrl } = addParamToUrl({ + url, + "name": "referrer_uri", + "value": window.location.href + }); + + url = newUrl; + } + + { + const { newUrl } = addParamToUrl({ + url, + "name": "kc_locale", + "value": lang + }); + + url = newUrl; + } + + return url; } }; diff --git a/src/keycloak-theme/account/pages/Password.tsx b/src/keycloak-theme/account/pages/Password.tsx index d40edbac..e2e3fed6 100644 --- a/src/keycloak-theme/account/pages/Password.tsx +++ b/src/keycloak-theme/account/pages/Password.tsx @@ -3,6 +3,7 @@ import type { PageProps } from "keycloakify/account/pages/PageProps"; import { useGetClassName } from "keycloakify/account/lib/useGetClassName"; import type { KcContext } from "../kcContext"; import type { I18n } from "../i18n"; +import { Input } from "@codegouvfr/react-dsfr/Input"; export default function LogoutConfirm( props: PageProps, I18n> @@ -23,14 +24,8 @@ export default function LogoutConfirm( return (