require 'bugsnag' class ApplicationController < ActionController::Base protect_from_forgery include ApplicationHelper include SessionsHelper include ClientHelper force_ssl port: Rails.application.config.external_port_ssl if Rails.application.config.force_ssl # inject username/email into bugsnag data before_bugsnag_notify :add_user_info_to_bugsnag before_filter do gon_setup end before_filter :set_tracking_cookie before_filter do if params[AffiliatePartner::PARAM_REFERRAL].present? && current_user.nil? if cookies[AffiliatePartner::PARAM_COOKIE].blank? code = params[AffiliatePartner::PARAM_REFERRAL].downcase cookies[AffiliatePartner::PARAM_COOKIE] = code if AffiliatePartner.is_code?(code) end end end def affiliate_code cookies[AffiliatePartner::PARAM_COOKIE] end # http://stackoverflow.com/questions/15807214/where-to-set-a-tracking-permanent-cookie-in-rails def set_tracking_cookie cookies.permanent[:user_uuid] = SecureRandom.uuid unless cookies[:user_uuid] end private def add_user_info_to_bugsnag(notif) # Add some app-specific data which will be displayed on a custom # "User Info" tab on each error page on bugsnag.com unless current_user.nil? notif.add_tab(:user_info, { name: current_user.name, email: current_user.email }) end end end