class SoarIdm::IdmApi

Public Instance Methods

get_attributes(entity_identifier, role = nil) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 16
def get_attributes(entity_identifier, role = nil)
  return nil if invalid_entity_identifier?(entity_identifier) or no_entity_identifier?(entity_identifier)
  identity = get_identity(entity_identifier)
  return calculate_all_attributes(identity) if role_missing?(role) or no_role?(role)
  roles = get_roles(entity_identifier)
  return nil if roles.nil? or not(roles.include?(role))
  calculate_attributes(identity, role)
end
get_identifiers(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 25
def get_identifiers(entity_identifier)
  return nil if invalid_entity_identifier?(entity_identifier) or no_entity_identifier?(entity_identifier)
  identity = get_identity(entity_identifier)
  calculate_identifiers(identity)
end
get_roles(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 10
def get_roles(entity_identifier)
  return nil if invalid_entity_identifier?(entity_identifier) or no_entity_identifier?(entity_identifier)
  identity = get_identity(entity_identifier)
  calculate_roles(identity)
end

Protected Instance Methods

calculate_all_attributes(identity) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 37
def calculate_all_attributes(identity)
  {}
end
calculate_attributes(identity, role) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 41
def calculate_attributes(identity, role)
  { role => {}}
end
calculate_identifiers(identity) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 45
def calculate_identifiers(identity)
  [entity_identifier]
end
calculate_identities(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 49
def calculate_identities(entity_identifier)
  [SecureRandom.uuid]
end
calculate_roles(identity) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 33
def calculate_roles(identity)
  []
end
get_identity(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 53
def get_identity(entity_identifier)
  identities = calculate_identities(entity_identifier)
  raise IdentityError.new("Error looking up identity for identifier #{entity_identifier}") if identities.nil?
  raise IdentityError.new("Multiple identities found for identifier #{entity_identifier}") if identities.size > 1
  raise IdentityError.new("Identities not found for identifier #{entity_identifier}") if identities.size == 0
  identities.first

rescue => ex
  raise IdentityError.new("Failure looking up identity for #{entity_identifier}: #{ex}")
end

Private Instance Methods

invalid_entity_identifier?(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 66
def invalid_entity_identifier?(entity_identifier)
  entity_identifier.nil? or not(entity_identifier.is_a?(String))
end
invalid_role?(role) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 74
def invalid_role?(role)
  role_missing?(role) or not(role.is_a?(String))
end
no_entity_identifier?(entity_identifier) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 70
def no_entity_identifier?(entity_identifier)
  entity_identifier.strip == ""
end
no_role?(role) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 82
def no_role?(role)
  role.strip == ""
end
role_missing?(role) click to toggle source
# File lib/soar_idm/soar_idm.rb, line 78
def role_missing?(role)
  role.nil?
end