lib/intercom-rails/shutdown_helper.rb in intercom-rails-0.3.8 vs lib/intercom-rails/shutdown_helper.rb in intercom-rails-0.4.0

- old
+ new

@@ -1,28 +1,31 @@ module IntercomRails 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 # Do not use before a redirect_to because it will not clear the cookies on a redirection - def self.intercom_shutdown_helper(cookies) + def self.intercom_shutdown_helper(cookies, domain = nil) + nil_session = { value: nil, expires: 1.day.ago } + nil_session = nil_session.merge(domain: domain) unless domain.nil? || domain == 'localhost' + if (cookies.is_a?(ActionDispatch::Cookies::CookieJar)) - cookies["intercom-session-#{IntercomRails.config.app_id}"] = { value: nil, expires: 1.day.ago} + cookies["intercom-session-#{IntercomRails.config.app_id}"] = nil_session 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}) + controller.response.delete_cookie("intercom-session-#{IntercomRails.config.app_id}", nil_session) end rescue end def self.prepare_intercom_shutdown(session) session[:perform_intercom_shutdown] = true end - def self.intercom_shutdown(session, cookies) + def self.intercom_shutdown(session, cookies, domain = nil) if session[:perform_intercom_shutdown] session.delete(:perform_intercom_shutdown) - intercom_shutdown_helper(cookies) + intercom_shutdown_helper(cookies, domain) end end end end