Sha256: 3cd9cc0964770ef3ab44d552d24850884c1a9ccdd5f4d19436530672c05151f6
Contents?: true
Size: 1.24 KB
Versions: 4
Compression:
Stored size: 1.24 KB
Contents
module Weasel def audit_with_weasel(*args) around_filter :audit, only: args end module Auditable def audit begin yield ensure return unless actor.present? Weasel::EventsWorker.perform_async(actor.class.name, actor.id, request_data) end end private def actor return current_user if defined?(current_user) return current_admin if defined?(current_admin) end def request_data parameters = request.params rails_action = "#{parameters[:controller]}:#{parameters[:action]}" rails_parameters = parameters.except(:controller, :action) { action: rails_action, params: rails_parameters, remote_ip: request.remote_ip, geo_ip_information: geo_ip_information, user_agent: request.user_agent, response: { status: response.status }.tap do |hash| hash[:body] = response.body if response.body end }.tap do |hash| hash[:flash] = request.flash if request.flash end end def geo_ip_information geo_service.country(request.remote_ip).to_h end def geo_service @@geoip ||= GeoIP.new(File.join(Rails.root, 'tmp/GeoIP.dat')) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
weasel-0.2.7 | lib/weasel/concerns/auditable.rb |
weasel-0.2.6 | lib/weasel/concerns/auditable.rb |
weasel-0.2.5 | lib/weasel/concerns/auditable.rb |
weasel-0.2.4 | lib/weasel/concerns/auditable.rb |