Class: Gitlab::Auth::Saml::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/auth/saml/config.rb

Constant Summary collapse

DEFAULT_NICKNAME_ATTRS =
%w[username nickname].freeze
DEFAULT_NAME_ATTRS =
%w[
  http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
  http://schemas.microsoft.com/ws/2008/06/identity/claims/name
].freeze
DEFAULT_EMAIL_ATTRS =
%w[
  http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  http://schemas.microsoft.com/ws/2008/06/identity/claims/emailaddress
].freeze
DEFAULT_FIRST_NAME_ATTRS =
%w[
  http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
  http://schemas.microsoft.com/ws/2008/06/identity/claims/givenname
].freeze
DEFAULT_LAST_NAME_ATTRS =
%w[
  http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
  http://schemas.microsoft.com/ws/2008/06/identity/claims/surname
].freeze
DEFAULT_PROVIDER_NAME =
'saml'

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(provider = DEFAULT_PROVIDER_NAME) ⇒ Config

Returns a new instance of Config.



44
45
46
# File 'lib/gitlab/auth/saml/config.rb', line 44

def initialize(provider = DEFAULT_PROVIDER_NAME)
  @provider = provider
end

Class Method Details

.default_attribute_statementsObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/gitlab/auth/saml/config.rb', line 30

def default_attribute_statements
  defaults = OmniAuth::Strategies::SAML.default_options[:attribute_statements].to_hash.deep_symbolize_keys
  defaults[:nickname] = DEFAULT_NICKNAME_ATTRS.dup
  defaults[:name].concat(DEFAULT_NAME_ATTRS)
  defaults[:email].concat(DEFAULT_EMAIL_ATTRS)
  defaults[:first_name].concat(DEFAULT_FIRST_NAME_ATTRS)
  defaults[:last_name].concat(DEFAULT_LAST_NAME_ATTRS)

  defaults
end

.enabled?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/gitlab/auth/saml/config.rb', line 26

def enabled?
  ::AuthHelper.saml_providers.any?
end

Instance Method Details

#admin_groupsObject



64
65
66
# File 'lib/gitlab/auth/saml/config.rb', line 64

def admin_groups
  options[:admin_groups]
end

#external_groupsObject



60
61
62
# File 'lib/gitlab/auth/saml/config.rb', line 60

def external_groups
  options[:external_groups]
end

#groupsObject



56
57
58
# File 'lib/gitlab/auth/saml/config.rb', line 56

def groups
  options[:groups_attribute]
end

#optionsObject



48
49
50
# File 'lib/gitlab/auth/saml/config.rb', line 48

def options
  Gitlab::Auth::OAuth::Provider.config_for(@provider)
end

#upstream_two_factor_authn_contextsObject



52
53
54
# File 'lib/gitlab/auth/saml/config.rb', line 52

def upstream_two_factor_authn_contexts
  options.args[:upstream_two_factor_authn_contexts]
end