module ActiveLdap::Configuration::ClassMethods

Constants

CONNECTION_CONFIGURATION_KEYS

Public Instance Methods

configuration(key=nil) click to toggle source
# File lib/active_ldap/configuration.rb, line 79
def configuration(key=nil)
  @@defined_configurations[key || active_connection_name]
end
default_configuration() click to toggle source
# File lib/active_ldap/configuration.rb, line 52
def default_configuration
  DEFAULT_CONFIG.dup
end
define_configuration(key, config) click to toggle source
# File lib/active_ldap/configuration.rb, line 83
def define_configuration(key, config)
  @@defined_configurations[key] = config
end
defined_configurations() click to toggle source
# File lib/active_ldap/configuration.rb, line 87
def defined_configurations
  @@defined_configurations
end
ensure_configuration(config=nil) click to toggle source
# File lib/active_ldap/configuration.rb, line 56
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) click to toggle source
# File lib/active_ldap/configuration.rb, line 102
def merge_configuration(user_configuration, target=self)
  configuration = default_configuration
  prepare_configuration(user_configuration).each do |key, value|
    case key
    when :base
      # Scrub before inserting
      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) click to toggle source
# File lib/active_ldap/configuration.rb, line 124
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

  uri_configuration = {:port => uri.port}
  uri_configuration[:host] = uri.host if uri.host
  uri_configuration[:bind_dn] = uri.dn if uri.dn
  uri_configuration[:scope] = uri.scope if uri.scope
  uri_configuration[:method] = :ssl if uri.is_a?(URI::LDAPS)
  uri_configuration.merge(configuration)
end
remove_configuration_by_configuration(config) click to toggle source
# File lib/active_ldap/configuration.rb, line 91
def remove_configuration_by_configuration(config)
  @@defined_configurations.delete_if {|key, value| value == config}
end