Module: Soar::Authentication::Identity::Factory

Defined in:
lib/soar/authentication/identity/factory.rb

Class Method Summary collapse

Class Method Details

.create(directory: nil, authenticated_identifier: nil) ⇒ Soar::Authentication::Identity::Model

Parameters:

  • authenticated_identifier (String) (defaults to: nil)

Returns:

Raises:

  • (ArgumentError)


13
14
15
16
17
# File 'lib/soar/authentication/identity/factory.rb', line 13

def self.create(directory: nil, authenticated_identifier: nil)
  raise ArgumentError if authenticated_identifier.nil? or directory.nil?
  provider = get_provider(directory, authenticated_identifier)
  Soar::Authentication::Identity.new(provider)
end

.get_provider(directory, authenticated_identifier) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/soar/authentication/identity/factory.rb', line 21

def self.get_provider(directory, authenticated_identifier)
  case authenticated_identifier
    when /@hetzner.co.za\z/
      Soar::Authentication::Identity::Provider::Staff.new({
        directory: directory,
        authenticated_identifier: authenticated_identifier
      })
    when /D\d*$/
      raise NotImplementedError, 'Domain identities require an implementation'
    when /^[CF]{0,1}\d*$/
      raise NotImplementedError, 'Customer identities require an implementation'
    else
      raise Soar::Authentication::Identity::Error::UnknownIdentityError, 'Unknown identity'
  end
  
end