Module: ActiveLdap::Configuration::ClassMethods
- Defined in:
- lib/active_ldap/configuration.rb
Defined Under Namespace
Classes: URIConfigurationMerger
Constant Summary
- CONNECTION_CONFIGURATION_KEYS =
[:uri, :base, :adapter]
- @@defined_configurations =
{}
Instance Method Summary
collapse
Instance Method Details
#configuration(key = nil) ⇒ Object
82
83
84
|
# File 'lib/active_ldap/configuration.rb', line 82
def configuration(key=nil)
@@defined_configurations[key || active_connection_name]
end
|
#default_configuration ⇒ Object
55
56
57
|
# File 'lib/active_ldap/configuration.rb', line 55
def default_configuration
DEFAULT_CONFIG.dup
end
|
#define_configuration(key, config) ⇒ Object
86
87
88
|
# File 'lib/active_ldap/configuration.rb', line 86
def define_configuration(key, config)
@@defined_configurations[key] = config
end
|
#defined_configurations ⇒ Object
90
91
92
|
# File 'lib/active_ldap/configuration.rb', line 90
def defined_configurations
@@defined_configurations
end
|
#ensure_configuration(config = nil) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/active_ldap/configuration.rb', line 59
def ensure_configuration(config=nil)
if config.nil?
if defined?(LDAP_ENV)
config = LDAP_ENV
elsif defined?(Rails)
config = Rails.env
else
config = {}
end
end
if config.is_a?(Symbol) or config.is_a?(String)
_config = configurations[config.to_s]
unless _config
raise ConnectionError,
_("%s connection is not configured") % config
end
config = _config
end
config
end
|
#merge_configuration(user_configuration, target = self) ⇒ Object
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/active_ldap/configuration.rb', line 105
def merge_configuration(user_configuration, target=self)
configuration = default_configuration
prepare_configuration(user_configuration).each do |key, value|
case key
when :base
target.base = value.gsub(/['}{#]/, '')
when :scope, :ldap_scope
if key == :ldap_scope
message = _(":ldap_scope configuration option is deprecated. " \
"Use :scope instead.")
ActiveSupport::Deprecation.warn(message)
end
target.scope = value
configuration[:scope] = value
else
configuration[key] = value
end
end
configuration
end
|
#prepare_configuration(configuration) ⇒ Object
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/active_ldap/configuration.rb', line 127
def prepare_configuration(configuration)
configuration = configuration.symbolize_keys
uri = configuration.delete(:uri)
return configuration unless uri
begin
uri = URI.parse(uri)
rescue URI::InvalidURIError
raise ConfigurationError.new(_("invalid URI: %s") % uri)
end
unless uri.is_a?(URI::LDAP)
raise ConfigurationError.new(_("not a LDAP URI: %s") % uri.to_s)
end
merger = URIConfigurationMerger.new(uri)
merger.merge(configuration)
end
|
#remove_configuration_by_configuration(config) ⇒ Object
94
95
96
|
# File 'lib/active_ldap/configuration.rb', line 94
def remove_configuration_by_configuration(config)
@@defined_configurations.delete_if {|key, value| value == config}
end
|
99
100
101
102
103
|
# File 'lib/active_ldap/configuration.rb', line 99
def remove_connection_related_configuration(config)
config.reject do |key, value|
CONNECTION_CONFIGURATION_KEYS.include?(key)
end
end
|