module AuthTrail::Manager

Public Class Methods

after_set_user(user, auth, opts) click to toggle source
# File lib/auth_trail/manager.rb, line 4
def after_set_user(user, auth, opts)
  request = ActionDispatch::Request.new(auth.env)

  AuthTrail.track(
    strategy: detect_strategy(auth),
    scope: opts[:scope].to_s,
    identity: AuthTrail.identity_method.call(request, opts, user),
    success: true,
    request: request,
    user: user
  )
end
before_failure(env, opts) click to toggle source
# File lib/auth_trail/manager.rb, line 17
def before_failure(env, opts)
  request = ActionDispatch::Request.new(env)

  AuthTrail.track(
    strategy: detect_strategy(env["warden"]),
    scope: opts[:scope].to_s,
    identity: AuthTrail.identity_method.call(request, opts, nil),
    success: false,
    request: request,
    failure_reason: opts[:message].to_s
  )
end

Private Class Methods

detect_strategy(auth) click to toggle source
# File lib/auth_trail/manager.rb, line 32
def detect_strategy(auth)
  strategy = auth.env["omniauth.auth"]["provider"] if auth.env["omniauth.auth"]
  strategy ||= auth.winning_strategy.class.name.split("::").last.underscore if auth.winning_strategy
  strategy ||= "database_authenticatable"
  strategy
end