From accab6db1265281a96747c1a4ead47ae50a037fa Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Fri, 30 Dec 2022 13:21:30 +0100 Subject: [PATCH 1/3] Explicitly use the class name that is being deprecated The message is otherwise hard to understand. --- core/app/models/spree/user_last_url_storer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/app/models/spree/user_last_url_storer.rb b/core/app/models/spree/user_last_url_storer.rb index 8aa7644b36c..c8443a18ec5 100644 --- a/core/app/models/spree/user_last_url_storer.rb +++ b/core/app/models/spree/user_last_url_storer.rb @@ -26,7 +26,7 @@ def self.rules # or its subclasses. The controller will be passed to each rule for matching. def initialize(controller) @controller = controller - Spree::Deprecation.warn("This class will be removed without replacement on the release of Solidus 4.0") + Spree::Deprecation.warn("#{self.class} will be removed without replacement on the release of Solidus 4.0") end # Stores into session[:spree_user_return_to] the request full path for From ee8cb5c3df782ff0b02944881b29d83529938c7e Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Thu, 12 Jan 2023 13:47:39 +0100 Subject: [PATCH 2/3] Improve deprecation messages for the Auth module --- core/lib/spree/core/controller_helpers/auth.rb | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/core/lib/spree/core/controller_helpers/auth.rb b/core/lib/spree/core/controller_helpers/auth.rb index 35afa14534d..924341cdb0c 100644 --- a/core/lib/spree/core/controller_helpers/auth.rb +++ b/core/lib/spree/core/controller_helpers/auth.rb @@ -37,12 +37,6 @@ def current_ability end def redirect_back_or_default(default) - Spree::Deprecation.warn <<~MSG - 'Please use #stored_spree_user_location_or when using solidus_auth_devise. - Otherwise, please utilize #redirect_back provided in Rails 5+ or - #redirect_back_or_to in Rails 7+ instead' - MSG - redirect_to(session["spree_user_return_to"] || default) session["spree_user_return_to"] = nil end @@ -57,11 +51,6 @@ def set_guest_token end def store_location - Spree::Deprecation.warn <<~MSG - store_location is being deprecated in solidus 4.0 - without replacement - MSG - Spree::UserLastUrlStorer.new(self).store_location end @@ -83,7 +72,11 @@ def try_spree_current_user end end - deprecate try_spree_current_user: :spree_current_user, deprecator: Spree::Deprecation + deprecate \ + try_spree_current_user: :spree_current_user, + redirect_back_or_default: 'Please use `redirect_to stored_spree_user_location_or(...)` when using solidus_auth_devise.', + store_location: 'Please use `store_location_for(:spree_user, request.fullpath)` when using solidus_auth_devise.', + deprecator: Spree::Deprecation end end end From f4f408613ea713d011e7269813066472f2820234 Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Thu, 12 Jan 2023 13:48:21 +0100 Subject: [PATCH 3/3] Use a guard check instead of wrapping the whole method body Appeasing Rubocop in the process. --- core/lib/spree/core/controller_helpers/auth.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/lib/spree/core/controller_helpers/auth.rb b/core/lib/spree/core/controller_helpers/auth.rb index 924341cdb0c..9854f97bc65 100644 --- a/core/lib/spree/core/controller_helpers/auth.rb +++ b/core/lib/spree/core/controller_helpers/auth.rb @@ -42,12 +42,12 @@ def redirect_back_or_default(default) end def set_guest_token - unless cookies.signed[:guest_token].present? - cookies.permanent.signed[:guest_token] = Spree::Config[:guest_token_cookie_options].merge( - value: SecureRandom.urlsafe_base64(nil, false), - httponly: true - ) - end + return if cookies.signed[:guest_token].present? + + cookies.permanent.signed[:guest_token] = Spree::Config[:guest_token_cookie_options].merge( + value: SecureRandom.urlsafe_base64(nil, false), + httponly: true + ) end def store_location