lib/intercom-rails/shutdown_helper.rb in intercom-rails-0.2.33 vs lib/intercom-rails/shutdown_helper.rb in intercom-rails-0.2.34
- old
+ new
@@ -2,10 +2,29 @@
module ShutdownHelper
# This helper allows to erase cookies when a user log out of an application
# It is recommanded to call this function every time a user log out of your application
# specifically if you use both "Acquire" and another Intercom product
# Do not use before a redirect_to because it will not clear the cookies on a redirection
- def self.intercom_shutdown_helper (controller)
- controller.response.delete_cookie("intercom-session-#{IntercomRails.config.app_id}")
+ def self.intercom_shutdown_helper(cookies)
+ if (cookies.is_a?(ActionDispatch::Cookies::CookieJar))
+ cookies["intercom-session-#{IntercomRails.config.app_id}"] = { value: nil, expires: 1.day.ago}
+ else
+ controller = cookies
+ Rails.logger.info("Warning: IntercomRails::ShutdownHelper.intercom_shutdown_helper takes an instance of ActionDispatch::Cookies::CookieJar as an argument since v0.2.34. Passing a controller is depreciated. See https://github.com/intercom/intercom-rails#shutdown for more details.")
+ controller.response.delete_cookie("intercom-session-#{IntercomRails.config.app_id}", { value: nil, expires: 1.day.ago})
+ end
+ rescue
end
+
+ def self.prepare_intercom_shutdown(session)
+ session[:perform_intercom_shutdown] = true
+ end
+
+ def self.intercom_shutdown(session, cookies)
+ if session[:perform_intercom_shutdown]
+ session.delete(:perform_intercom_shutdown)
+ intercom_shutdown_helper(cookies)
+ end
+ end
+
end
end