diff --git a/app/controllers/spree/user_sessions_controller.rb b/app/controllers/spree/user_sessions_controller.rb index 82ca577fc3..44fb56a312 100644 --- a/app/controllers/spree/user_sessions_controller.rb +++ b/app/controllers/spree/user_sessions_controller.rb @@ -6,11 +6,13 @@ module Spree include Spree::Core::ControllerHelpers::Common include Spree::Core::ControllerHelpers::Order include Spree::Core::ControllerHelpers::SSL + include I18nHelper ssl_required :new, :create, :destroy, :update ssl_allowed :login_bar before_action :set_checkout_redirect, only: :create + after_action :ensure_valid_locale, only: :create def create authenticate_spree_user! @@ -48,5 +50,11 @@ module Spree redirect_to(session["spree_user_return_to"] || default) session["spree_user_return_to"] = nil end + + def ensure_valid_locale + return unless spree_current_user && !available_locale?(spree_current_user.locale) + + spree_current_user.update!(locale: I18n.default_locale) + end end end diff --git a/spec/features/consumer/authentication_spec.rb b/spec/features/consumer/authentication_spec.rb index cd4921190a..3e676b4c1e 100644 --- a/spec/features/consumer/authentication_spec.rb +++ b/spec/features/consumer/authentication_spec.rb @@ -161,7 +161,7 @@ feature "Authentication", js: true do user.update!(locale: "xx") end - xit "logs in successfully and resets the user's locale to the default" do + it "logs in successfully and resets the user's locale to the default" do fill_in_and_submit_login_form(user) expect_logged_in