class OmniAuth::Vph::Adaptor

Constants

MUST_HAVE_KEYS

Attributes

connection[R]

Public Class Methods

new(configuration={}) click to toggle source
# File lib/omniauth-vph/adaptor.rb, line 21
def initialize(configuration={})
  Adaptor.validate(configuration)
  @configuration = configuration.dup

  verify = @configuration[:ssl_verify] == nil ? true : @configuration[:ssl_verify]
  @connection = Faraday.new(url: @configuration[:host], :ssl => {:verify => verify})
end
validate(configuration={}) click to toggle source
# File lib/omniauth-vph/adaptor.rb, line 13
def self.validate(configuration={})
  message = []
  MUST_HAVE_KEYS.each do |name|
     message << name if configuration[name].nil?
  end
  raise ArgumentError.new(message.join(",") +" MUST be provided") unless message.empty?
end

Public Instance Methods

map_user(object) click to toggle source
# File lib/omniauth-vph/adaptor.rb, line 38
def map_user(object)
  user = {}
  user['email'] = object['email']
  user['login'] = object['username']
  user['full_name'] = object['fullname']
  user['roles'] = roles object

  user
end
user_info(ticket) click to toggle source
# File lib/omniauth-vph/adaptor.rb, line 29
def user_info(ticket)
  begin
    response = @connection.get '/validatetkt/', {ticket: ticket}
    response.status == 200 ? JSON.parse(response.body) : nil
  rescue Exception => e
    raise ConnectionError.new
  end
end

Private Instance Methods

roles(object) click to toggle source
# File lib/omniauth-vph/adaptor.rb, line 50
def roles(object)
  roles_map = @configuration[:roles_map]
  roles = []
  if object['role'] and roles_map
    roles_map.each do |k,v|
      roles << v if object['role'].include? k
    end
  end
  roles
end