class Soar::Registry::Identity::Provider::Staff::Uuid
Public Class Methods
new(identity_directory:, role_directory:)
click to toggle source
@param [Soar::Registry::Directory] identity_directory @param [Soar::Registry::Directory] role_directory
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 15 def initialize(identity_directory:, role_directory:) @identity_directory = identity_directory @role_directory = role_directory end
Public Instance Methods
calculate_all_attributes(identity_uuid)
click to toggle source
@param [String] identity_uuid @return [Hash{String => String, Number, Hash, Array}] A hash of attributes
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 68 def calculate_all_attributes(identity_uuid) begin role_entries = @role_directory.directory.search(@role_directory.search_index, identity_uuid) roles = {} role_entries.each { |role_entry| roles[role_entry['identity_role']] = role_entry.key?('identity_role_attributes') ? role_entry['identity_role_attributes'] : {} } identity = @identity_directory.directory.fetch(identity_uuid) attributes = {} attributes["identity_uuid"] = identity_uuid attributes["firstname"] = identity['givenName'] if identity.key?('givenName') attributes["lastname"] = identity['sn'] if identity.key?('sn') attributes["email"] = identity['mail'] if identity.key?('mail') attributes["roles"] = roles return attributes rescue Soar::Registry::Directory::Error::NoEntriesFoundError => e raise SoarIdm::IdentityError, e.message end end
calculate_attributes(identity_uuid, role)
click to toggle source
@param [String] identity_uuid @param [String] role @return [Hash{String => String, Number, Hash, Array}] A hash of attributes
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 52 def calculate_attributes(identity_uuid, role) primary_key = { @role_directory.fetch_index[0] => identity_uuid, @role_directory.fetch_index[1] => role } result = @role_directory.directory.fetch(primary_key) attributes = { role => result.key?('identity_role_attributes') ? result['identity_role_attributes'] : {} } return attributes end
calculate_identifiers(identity)
click to toggle source
@param [Hash{String => String, Number}] identity @return [Array<String,Number>] list of identifiers
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 38 def calculate_identifiers(identity) indexes = @identity_directory.directory.index identifiers = [] indexes.each { |index| identifiers << identity[index.to_s] } identifiers end
calculate_identities(identity_uuid)
click to toggle source
@param [String] identity_uuid @return [Array<String>] identifiers @raise [Soar::Registry::Directory::Error::NoEntriesFoundError]
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 93 def calculate_identities(identity_uuid) return [identity_uuid] end
calculate_roles(identity_uuid)
click to toggle source
@param [String] identity_uuid @return [Array<String>] list of roles
# File lib/soar/registry/identity/provider/staff/uuid.rb, line 24 def calculate_roles(identity_uuid) entries = @role_directory.directory.search(@role_directory.search_index, identity_uuid) roles = [] entries.each do |entry| identity_source = entry['identity_source'] if entry.key?('identity_source') roles << entry[@role_directory.fetch_index[1]] end return roles end