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