class OmniAuth::Strategies::Fake

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/fake.rb, line 24
def callback_phase
  return fail!(:missing_credentials) if request['uid'].nil? || request['uid'].empty?
  return fail!(:invalid_credentials) if @@identities[request['uid']].nil?
  @identity = @@identities[request['uid']]
  super
end
request_phase() click to toggle source
# File lib/omniauth/strategies/fake.rb, line 11
def request_phase
  load_identities

  f = OmniAuth::Form.new(:title => "Identity Selection", :url => callback_path, )
  f.html %Q{\n<select id="identity" name="identity"/>}
  @@identities.each do |uid,data|
    f.html %Q{\n<option value="#{uid}">#{uid} - #{data['info']['name']}</option>}
  end
  f.html %Q{</select>}
  f.button "Sign In"
  f.to_response
end

Private Instance Methods

load_identities() click to toggle source
# File lib/omniauth/strategies/fake.rb, line 40
def load_identities
  @@identities = {}
  [@options[:dotfiles]].flatten.each do |file|
    YAML.load(open(file).read).each do |uid,attributes|
      @@identities[uid] = {
        'uid' => uid,
        'info' => {},
        'raw_info'  => {
          'uid' => uid
        }
      }
      attributes.each do |k,v|
        case k
        when 'raw_info'
          @@identities[uid]['raw_info'].merge!(v)
        when 'credentials'
          @@identities[uid]['credentials'] = v
          @@identities[uid]['raw_info'][k] = v
        else
          @@identities[uid]['info'][k] = v
        end
      end
      @@identities[uid]['raw_info'].merge!(@@identities[uid]['info'])
    end
  end
end