Set context for raven
This commit is contained in:
@ -1,16 +1,18 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class ApplicationController < ActionController::Base
|
class ApplicationController < ActionController::Base
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
include Pundit
|
include Pundit
|
||||||
|
|
||||||
MEMBER_ACTIONS = [:destroy, :edit, :show, :update]
|
MEMBER_ACTIONS = %i[destroy edit show update].freeze
|
||||||
|
|
||||||
after_action :verify_authorized, except: [:help, :welcome]
|
after_action :verify_authorized, except: %i[help welcome]
|
||||||
before_action :set_locale, :allow_iframe_requests, :load_embed_options
|
before_action :set_raven_context, :set_locale, :allow_iframe_requests, :load_embed_options
|
||||||
protect_from_forgery(with: :exception, prepend: true)
|
protect_from_forgery(with: :exception, prepend: true)
|
||||||
rescue_from Pundit::NotAuthorizedError, with: :render_not_authorized
|
rescue_from Pundit::NotAuthorizedError, with: :render_not_authorized
|
||||||
|
|
||||||
def current_user
|
def current_user
|
||||||
::NewRelic::Agent.add_custom_attributes({ external_user_id: session[:external_user_id], session_user_id: session[:user_id] })
|
::NewRelic::Agent.add_custom_attributes(external_user_id: session[:external_user_id], session_user_id: session[:user_id])
|
||||||
@current_user ||= ExternalUser.find_by(id: session[:external_user_id]) || login_from_session || login_from_other_sources
|
@current_user ||= ExternalUser.find_by(id: session[:external_user_id]) || login_from_session || login_from_other_sources
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -18,6 +20,19 @@ class ApplicationController < ActionController::Base
|
|||||||
raise Pundit::NotAuthorizedError unless current_user
|
raise Pundit::NotAuthorizedError unless current_user
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_raven_context
|
||||||
|
return if current_user.blank?
|
||||||
|
|
||||||
|
Raven.user_context(
|
||||||
|
id: current_user.id,
|
||||||
|
type: current_user.class.name,
|
||||||
|
email: current_user.email,
|
||||||
|
username: current_user.displayname,
|
||||||
|
consumer: current_user.consumer.name
|
||||||
|
)
|
||||||
|
end
|
||||||
|
private :set_raven_context
|
||||||
|
|
||||||
def render_not_authorized
|
def render_not_authorized
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html do
|
format.html do
|
||||||
@ -36,6 +51,7 @@ class ApplicationController < ActionController::Base
|
|||||||
def set_locale
|
def set_locale
|
||||||
session[:locale] = params[:custom_locale] || params[:locale] || session[:locale]
|
session[:locale] = params[:custom_locale] || params[:locale] || session[:locale]
|
||||||
I18n.locale = session[:locale] || I18n.default_locale
|
I18n.locale = session[:locale] || I18n.default_locale
|
||||||
|
Raven.extra_context(locale: I18n.locale)
|
||||||
end
|
end
|
||||||
private :set_locale
|
private :set_locale
|
||||||
|
|
||||||
@ -48,11 +64,12 @@ class ApplicationController < ActionController::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def load_embed_options
|
def load_embed_options
|
||||||
if session[:embed_options].present? && session[:embed_options].is_a?(Hash)
|
@embed_options = if session[:embed_options].present? && session[:embed_options].is_a?(Hash)
|
||||||
@embed_options = session[:embed_options].symbolize_keys
|
session[:embed_options].symbolize_keys
|
||||||
else
|
else
|
||||||
@embed_options = {}
|
{}
|
||||||
end
|
end
|
||||||
|
Raven.extra_context(@embed_options)
|
||||||
@embed_options
|
@embed_options
|
||||||
end
|
end
|
||||||
private :load_embed_options
|
private :load_embed_options
|
||||||
|
Reference in New Issue
Block a user