class LdapQuery::Connection
For establishing an LDAP connection (binding LDAP connection)
Constants
- REQUIRED_KEYS
Attributes
link[RW]
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