Class: Soar::Authentication::IdentityUuidTranslator::Provider::Customer

Inherits:
Object
  • Object
show all
Defined in:
lib/soar/authentication/identity_uuid_translator/provider/customer.rb

Constant Summary collapse

ROLE =
"customer_account_administrator"
PREFIX =
"genie:client:id:"

Instance Method Summary collapse

Constructor Details

#initialize(identifier:, identity_registry:, uuid_generator: nil, role_generator: nil) ⇒ Customer

Returns a new instance of Customer.

Parameters:

  • identifier (String)
  • identity_registry (Soar::Registry::Identity)
  • uuid_generator (Soar::Authentication::IdentityUuidTranslator:UuidGenerator) (defaults to: nil)
  • roles_directory (Soar::Registry::Directory)


19
20
21
22
23
24
# File 'lib/soar/authentication/identity_uuid_translator/provider/customer.rb', line 19

def initialize(identifier: , identity_registry: , uuid_generator: nil, role_generator: nil)
  @idr = identity_registry
  @uuid_generator = uuid_generator 
  @identifier = identifier
  @role_generator = role_generator 
end

Instance Method Details

#client_numberString|Nil

Returns:

  • (String|Nil)


41
42
43
44
45
46
47
# File 'lib/soar/authentication/identity_uuid_translator/provider/customer.rb', line 41

def client_number
  client_number = @identifiers.map do |identifier|
    next if not identifier.is_a?(String) # it's an ID
    break identifier if /\A[CF]{0,1}\d+\z/i.match(identifier)
  end
  client_number.is_a?(Array) ? nil : client_number
end

#uuidObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/soar/authentication/identity_uuid_translator/provider/customer.rb', line 26

def uuid
  return @uuid if not @uuid.nil?
  @identifiers = @idr.get_identifiers(@identifier)
  @uuid = @uuid_generator.nil? ? @identifiers[0] : @uuid_generator::generate("#{PREFIX}#{@identifiers[0]}")
  @role_generator.generate({
      "identity_uuid" => uuid,
      "identity_role" => ROLE,
      "identity_role_attributes" => [client_number].compact
  }) if not @role_generator.nil? 
  return @uuid
end