Module: AuthTrail
- Defined in:
- lib/authtrail.rb,
lib/auth_trail/manager.rb,
lib/auth_trail/version.rb,
lib/auth_trail/geocode_job.rb
Defined Under Namespace
Modules: Manager Classes: GeocodeJob
Constant Summary collapse
- VERSION =
"0.5.0"
Class Attribute Summary collapse
-
.exclude_method ⇒ Object
Returns the value of attribute exclude_method.
-
.geocode ⇒ Object
Returns the value of attribute geocode.
-
.identity_method ⇒ Object
Returns the value of attribute identity_method.
-
.job_queue ⇒ Object
Returns the value of attribute job_queue.
-
.track_method ⇒ Object
Returns the value of attribute track_method.
-
.transform_method ⇒ Object
Returns the value of attribute transform_method.
Class Method Summary collapse
- .safely(default: nil) ⇒ Object
- .track(strategy:, scope:, identity:, success:, request:, user: nil, failure_reason: nil) ⇒ Object
Class Attribute Details
.exclude_method ⇒ Object
Returns the value of attribute exclude_method.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def exclude_method @exclude_method end |
.geocode ⇒ Object
Returns the value of attribute geocode.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def geocode @geocode end |
.identity_method ⇒ Object
Returns the value of attribute identity_method.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def identity_method @identity_method end |
.job_queue ⇒ Object
Returns the value of attribute job_queue.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def job_queue @job_queue end |
.track_method ⇒ Object
Returns the value of attribute track_method.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def track_method @track_method end |
.transform_method ⇒ Object
Returns the value of attribute transform_method.
12 13 14 |
# File 'lib/authtrail.rb', line 12 def transform_method @transform_method end |
Class Method Details
.safely(default: nil) ⇒ Object
62 63 64 65 66 67 68 69 |
# File 'lib/authtrail.rb', line 62 def self.safely(default: nil) begin yield rescue => e warn "[authtrail] #{e.class.name}: #{e.}" default end end |
.track(strategy:, scope:, identity:, success:, request:, user: nil, failure_reason: nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/authtrail.rb', line 24 def self.track(strategy:, scope:, identity:, success:, request:, user: nil, failure_reason: nil) data = { strategy: strategy, scope: scope, identity: identity, success: success, failure_reason: failure_reason, user: user, ip: request.remote_ip, user_agent: request.user_agent, referrer: request.referrer } if request.params[:controller] data[:context] = "#{request.params[:controller]}##{request.params[:action]}" end # add request data before exclude_method since exclude_method doesn't have access to request # could also add 2nd argument to exclude_method when arity > 1 AuthTrail.transform_method.call(data, request) if AuthTrail.transform_method # if exclude_method throws an exception, default to not excluding exclude = AuthTrail.exclude_method && AuthTrail.safely(default: false) { AuthTrail.exclude_method.call(data) } unless exclude if AuthTrail.track_method AuthTrail.track_method.call(data) else login_activity = LoginActivity.new data.each do |k, v| login_activity.try("#{k}=", v) end login_activity.save! AuthTrail::GeocodeJob.perform_later(login_activity) if AuthTrail.geocode end end end |