class OmniAuth::Strategies::Opscode

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/opscode.rb, line 23
def callback_phase
  return fail!(:invalid_credentials) unless identity
  super
end
identity() click to toggle source
# File lib/omniauth/strategies/opscode.rb, line 36
def identity
  @identity ||= nil

  return @identity if @identity

  conn = Faraday.new(:url => options.chef_webui_url, :ssl => {:verify => false}) do |faraday|
    faraday.request  :url_encoded             # form-encode POST params
    faraday.response :logger                  # log requests to STDOUT
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
    faraday.use :cookie_jar
  end

  conn.get("/login")
  response = conn.post('/login_exec', { :name => request['username'], :password => request['password'] })
  if response.status == 302 && response.headers['location'] =~ /nodes$/
    @identity = {
      :name => request['username']
    }
  else
    nil
  end
end
info() click to toggle source
# File lib/omniauth/strategies/opscode.rb, line 32
def info
  @identity
end
request_phase() click to toggle source
# File lib/omniauth/strategies/opscode.rb, line 15
def request_phase
  form = OmniAuth::Form.new(:title => "Login to Opscode", :url => callback_path)
  form.text_field 'Username', 'username'
  form.password_field 'Password', 'password'
  form.button "Login"
  form.to_response
end
uid() click to toggle source
# File lib/omniauth/strategies/opscode.rb, line 28
def uid
  @identity[:name]
end