diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index b3d6d9af022..9997da3063b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -407,6 +407,14 @@ def store_web_locale_in_session user_session[:web_locale] = I18n.locale.to_s end + def override_locale_with_web_locale + return unless user_signed_in? + return if user_session[:web_locale].nil? + return if params[:locale].present? + + I18n.locale = LocaleChooser.new(user_session[:web_locale], request).locale + end + def pii_requested_but_locked? if resolved_authn_context_result.identity_proofing? || resolved_authn_context_result.ialmax? current_user.identity_verified? && diff --git a/app/controllers/openid_connect/authorization_controller.rb b/app/controllers/openid_connect/authorization_controller.rb index 2c07e98e1f1..117a6fe4e19 100644 --- a/app/controllers/openid_connect/authorization_controller.rb +++ b/app/controllers/openid_connect/authorization_controller.rb @@ -14,6 +14,7 @@ class AuthorizationController < ApplicationController before_action :build_authorize_form_from_params, only: [:index] before_action :set_devise_failure_redirect_for_concurrent_session_logout + before_action :override_locale_with_web_locale before_action :pre_validate_authorize_form, only: [:index] before_action :sign_out_if_prompt_param_is_login_and_user_is_signed_in, only: [:index] before_action :store_request, only: [:index]