Module LDAP
In: lib/activeldap/ldap.rb
lib/activeldap/schema2.rb
LDAP::Error PrettyError Schema Schema2 Conn lib/activeldap/schema2.rb lib/activeldap/ldap.rb LDAP Module: LDAP

Methods

Classes and Modules

Class LDAP::Conn
Class LDAP::PrettyError
Class LDAP::Schema2

Constants

ERRORS = [ "LDAP_SUCCESS", "LDAP_OPERATIONS_ERROR", "LDAP_PROTOCOL_ERROR", "LDAP_TIMELIMIT_EXCEEDED", "LDAP_SIZELIMIT_EXCEEDED", "LDAP_COMPARE_FALSE", "LDAP_COMPARE_TRUE", "LDAP_STRONG_AUTH_NOT_SUPPORTED", "LDAP_AUTH_METHOD_NOT_SUPPORTED", "LDAP_STRONG_AUTH_REQUIRED", "LDAP_REFERRAL", "LDAP_ADMINLIMIT_EXCEEDED", "LDAP_UNAVAILABLE_CRITICAL_EXTENSION", "LDAP_CONFIDENTIALITY_REQUIRED", "LDAP_SASL_BIND_IN_PROGRESS", "LDAP_PARTIAL_RESULTS", "LDAP_NO_SUCH_ATTRIBUTE", "LDAP_UNDEFINED_TYPE", "LDAP_INAPPROPRIATE_MATCHING", "LDAP_CONSTRAINT_VIOLATION", "LDAP_TYPE_OR_VALUE_EXISTS", "LDAP_INVALID_SYNTAX", "LDAP_NO_SUCH_OBJECT", "LDAP_ALIAS_PROBLEM", "LDAP_INVALID_DN_SYNTAX", "LDAP_IS_LEAF", "LDAP_ALIAS_DEREF_PROBLEM", "LDAP_INAPPROPRIATE_AUTH", "LDAP_INVALID_CREDENTIALS", "LDAP_INSUFFICIENT_ACCESS", "LDAP_BUSY", "LDAP_UNAVAILABLE", "LDAP_UNWILLING_TO_PERFORM", "LDAP_LOOP_DETECT", "LDAP_NAMING_VIOLATION", "LDAP_OBJECT_CLASS_VIOLATION", "LDAP_NOT_ALLOWED_ON_NONLEAF", "LDAP_NOT_ALLOWED_ON_RDN", "LDAP_ALREADY_EXISTS", "LDAP_NO_OBJECT_CLASS_MODS", "LDAP_RESULTS_TOO_LARGE", "LDAP_OTHER", "LDAP_SERVER_DOWN", "LDAP_LOCAL_ERROR", "LDAP_ENCODING_ERROR", "LDAP_DECODING_ERROR", "LDAP_TIMEOUT", "LDAP_AUTH_UNKNOWN", "LDAP_FILTER_ERROR", "LDAP_USER_CANCELLED", "LDAP_PARAM_ERROR", "LDAP_NO_MEMORY", "LDAP_CONNECT_ERROR"

Attributes

error_map  [R] 

Public Class methods

Creates useful exceptions from @@conn.err output Returns [exception, message] based on err2string

[Source]

     # File lib/activeldap/ldap.rb, line 95
 95:   def LDAP.err2exception(errno=0)
 96:     need_to_rebuild = true
 97:     begin
 98:      exc = LDAP.const_get(@@error_map[errno])
 99:     rescue NameError
100:      if need_to_rebuild
101:        generate_err2exceptions()
102:        need_to_rebuild = false
103:        retry
104:      end
105:      exc = RuntimeError
106:     end
107:     return [exc, err2string(errno)]
108:   end

Calls err2exception() with 1...100 to pregenerate all the constants for errors. TODO: look at other support LDAP SDKs for weirdness

[Source]

    # File lib/activeldap/ldap.rb, line 71
71:   def LDAP.generate_err2exceptions()
72:     hash = {}
73:     ERRORS.each do |err|
74:       begin
75:         val = LDAP.const_get(err)
76:         # Make name into a exception
77:         exc = err.gsub(/^LDAP_/, '') 
78:         exc = exc.split('_').collect {|w| w.capitalize }.join('')
79:         # Doesn't exist :-)
80:         LDAP.module_eval("class \#{exc} < LDAP::PrettyError\nend\n")
81:         hash[val] = exc
82:       rescue NameError
83:         # next!
84:       end
85:     end
86:     @@error_map = hash
87:   end

[Validate]