class LdapQuery::Connection

For establishing an LDAP connection (binding LDAP connection)

Constants

REQUIRED_KEYS

Attributes

Public Class Methods

new(credentials, type: :basic) click to toggle source

Used for creating the initial Ldap connection for querying with supplied parameters

@param credentials [Hash] @return [Interface <Net::Ldap>]

# File lib/ldap_query/connection.rb, line 16
def initialize(credentials, type: :basic)
  if type == :auth
    credentials = filter_auth_credentials(credentials)
  else
    valid_credentials?(credentials)
  end
  @link = bind_connection(credentials)
end

Private Instance Methods

bind_connection(credentials) click to toggle source

Create LDAP connection string

@params credentials [Hash] @return [Interface <Net::Ldap>]

# File lib/ldap_query/connection.rb, line 62
def bind_connection(credentials)
  Net::LDAP.new(credentials)
rescue
  raise(ConnectionError, 'Failure connecting to LDAP host')
end
credentials_error() click to toggle source

Raise an exception error if not all LDAP credentials have been included

# File lib/ldap_query/connection.rb, line 54
def credentials_error
  raise(CredentialsError, 'valid ldap credentials must be passed in order to establish a connection')
end
filter_auth_credentials(credentials) click to toggle source

Filter out all parameter keyus/values and only keep the required auth keys

@param credentials [Hash] @return [Hash]

# File lib/ldap_query/connection.rb, line 31
def filter_auth_credentials(credentials)
  auth_keys = %i[host port encryption].freeze
  credentials.select { |key, _v| auth_keys.include?(key) }.freeze
end
required_credentials?(credentials = {}) click to toggle source

Validate all required auth credentials have been supplied

@param credentials [Hash] @return [Hash]

# File lib/ldap_query/connection.rb, line 49
def required_credentials?(credentials = {})
  credentials_error unless REQUIRED_KEYS.all? { |k| credentials[k] }
end
valid_credentials?(credentials) click to toggle source

Validate all required keys have been included

@param credentials [Hash] @return [Hash]

# File lib/ldap_query/connection.rb, line 40
def valid_credentials?(credentials)
  credentials_error if !credentials.is_a?(Hash) || credentials.empty?
  required_credentials?(credentials)
end