module IntercomRails::ShutdownHelper

Public Class Methods

intercom_shutdown(session, cookies, domain = nil) click to toggle source
# File lib/intercom-rails/shutdown_helper.rb, line 24
def self.intercom_shutdown(session, cookies, domain = nil)
  if session[:perform_intercom_shutdown]
    session.delete(:perform_intercom_shutdown)
    intercom_shutdown_helper(cookies, domain)
  end
end
intercom_shutdown_helper(cookies, domain = nil) click to toggle source

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

# File lib/intercom-rails/shutdown_helper.rb, line 6
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}"] = 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}", nil_session)
  end
rescue
end
prepare_intercom_shutdown(session) click to toggle source
# File lib/intercom-rails/shutdown_helper.rb, line 20
def self.prepare_intercom_shutdown(session)
  session[:perform_intercom_shutdown] = true
end