diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 17585a7237..e9cb17480b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -62,11 +62,15 @@ class ApplicationController < ActionController::Base end def after_sign_out_path_for(_resource_or_scope) - session[:shopfront_redirect] || main_app.root_path + shopfront_redirect || main_app.root_path end private + def shopfront_redirect + session[:shopfront_redirect] + end + def restrict_iframes response.headers['X-Frame-Options'] = 'DENY' response.headers['Content-Security-Policy'] = "frame-ancestors 'none'" diff --git a/app/controllers/spree/user_sessions_controller.rb b/app/controllers/spree/user_sessions_controller.rb index df42f622e1..7ff26a3437 100644 --- a/app/controllers/spree/user_sessions_controller.rb +++ b/app/controllers/spree/user_sessions_controller.rb @@ -39,8 +39,18 @@ module Spree end end + def destroy + # Logout will clear session data including shopfront_redirect + # Here we store it before actually logging out so that the redirect works correctly + @shopfront_redirect = session[:shopfront_redirect] + + super + end + private + attr_reader :shopfront_redirect + def accurate_title Spree.t(:login) end