class OmniAuth::Strategies::MultiPassword

Public Class Methods

new(app, *args, &block) click to toggle source
Calls superclass method
# File lib/omniauth/strategies/multi_password.rb, line 10
def initialize(app, *args, &block)
  super(app, *args) do end

  if block.arity == 0
    instance_eval &block
  else
    block.call self
  end
end

Public Instance Methods

authenticate(username, password) click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 50
def authenticate(username, password)
  @authenticators.each do |auth|
    begin
      @authenticator = auth[0].new @app, *auth[1]
      @authenticator.init_authenticator(@request, @env, username)
      if @authenticator.authenticate(username, password)
        return true
      end
    rescue Error => e
      OmniAuth.logger.warn "OmniAuth ERR >>> " + e
    end
    @authenticator = nil
  end
  false
end
authenticator(klass, *args, &block) click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 25
def authenticator(klass, *args, &block)
  unless klass.is_a?(Class)
    begin
      klass = OmniAuth::Strategies.const_get("#{OmniAuth::Utils.camelize(klass.to_s)}")
    rescue NameError
      raise LoadError, "Could not find matching strategy for #{klass.inspect}." +
        "You may need to install an additional gem (such as omniauth-#{klass})."
    end
  end

  args << block if block
  @authenticators ||= []
  @authenticators  << [ klass, args ]
end
callback_phase() click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 40
def callback_phase
  username = request[username_id].to_s
  password = request[password_id].to_s
  if authenticate(username, password)
    super
  else
    return fail!(:invalid_credentials)
  end
end
name() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/multi_password.rb, line 66
def name
  return @authenticator.name if @authenticator
  super
end
options() { |options| ... } click to toggle source
# File lib/omniauth/strategies/multi_password.rb, line 20
def options
  yield @options if block_given?
  @options
end