A Sentry DSN can be set via `SENTRY_DSN` and authenticated users will be tagged with ID and username (cn) in events.
41 lines
914 B
Ruby
41 lines
914 B
Ruby
class ApplicationController < ActionController::Base
|
|
rescue_from DeviseLdapAuthenticatable::LdapException do |exception|
|
|
render :text => exception, :status => 500
|
|
end
|
|
|
|
before_action :sentry_set_user
|
|
|
|
def sentry_set_user
|
|
return unless Setting.sentry_enabled
|
|
|
|
if user_signed_in?
|
|
Sentry.set_user(id: current_user.id, username: current_user.cn)
|
|
else
|
|
Sentry.set_user({})
|
|
end
|
|
end
|
|
|
|
def require_user_signed_in
|
|
unless user_signed_in?
|
|
redirect_to welcome_path and return
|
|
end
|
|
end
|
|
|
|
def require_user_signed_out
|
|
if user_signed_in?
|
|
redirect_to root_path and return
|
|
end
|
|
end
|
|
|
|
def authorize_admin
|
|
http_status :forbidden unless current_user.is_admin?
|
|
end
|
|
|
|
def http_status(status)
|
|
respond_to do |format|
|
|
format.html { render template: "shared/status_#{status.to_s}", status: status }
|
|
format.any { head status }
|
|
end
|
|
end
|
|
end
|