Module: Soar::Authentication::Identity::Factory
- Defined in:
- lib/soar/authentication/identity/factory.rb
Class Method Summary collapse
- .create(directory: nil, authenticated_identifier: nil) ⇒ Soar::Authentication::Identity::Model
- .get_provider(directory, authenticated_identifier) ⇒ Object
Class Method Details
.create(directory: nil, authenticated_identifier: nil) ⇒ Soar::Authentication::Identity::Model
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 |