Class: ActiveLdap::Adapter::NetLdap
- Defined in:
- lib/active_ldap/adapter/net_ldap.rb
Constant Summary collapse
- METHOD =
{ :ssl => :simple_tls, :tls => :start_tls, :plain => nil, }
Constants inherited from Base
Base::VALID_ADAPTER_CONFIGURATION_KEYS
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #add(dn, entries, options = {}) ⇒ Object
- #bind(options = {}) ⇒ Object
- #bind_as_anonymous(options = {}) ⇒ Object
- #bound? ⇒ Boolean
- #connect(options = {}) ⇒ Object
- #delete(targets, options = {}) ⇒ Object
- #modify(dn, entries, options = {}) ⇒ Object
- #modify_rdn(dn, new_rdn, delete_old_rdn, new_superior, options = {}) ⇒ Object
- #search(options = {}, &block) ⇒ Object
- #unbind(options = {}) ⇒ Object
Methods inherited from Base
#connecting?, #disconnect!, #entry_attribute, #initialize, jndi_connection, ldap_connection, #log_info, net_ldap_connection, #rebind, #reset_runtime, #schema
Methods included from GetTextSupport
Constructor Details
This class inherits a constructor from ActiveLdap::Adapter::Base
Instance Method Details
#add(dn, entries, options = {}) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 99 def add(dn, entries, ={}) super do |dn, entries| attributes = {} entries.each do |type, key, attrs| attrs.each do |name, values| attributes[name] = values end end args = {:dn => dn, :attributes => attributes} info = args.dup execute(:add, info, args) end end |
#bind(options = {}) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 47 def bind(={}) @bound = false begin super rescue Net::LDAP::LdapError raise AuthenticationError, $!. end end |
#bind_as_anonymous(options = {}) ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 56 def bind_as_anonymous(={}) super do @bound = false execute(:bind, {:name => "bind: anonymous"}, {:method => :anonymous}) @bound = true end end |
#bound? ⇒ Boolean
64 65 66 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 64 def bound? connecting? and @bound end |
#connect(options = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 23 def connect(={}) @bound = false super do |host, port, method| config = { :host => host, :port => port, } config[:encryption] = {:method => method} if method begin uri = construct_uri(host, port, method == :simple_tls) with_start_tls = method == :start_tls info = {:uri => uri, :with_start_tls => with_start_tls} [log("connect", info) {Net::LDAP::Connection.new(config)}, uri, with_start_tls] rescue Net::LDAP::LdapError raise ConnectionError, $!. end end end |
#delete(targets, options = {}) ⇒ Object
91 92 93 94 95 96 97 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 91 def delete(targets, ={}) super do |target| args = {:dn => target} info = args.dup execute(:delete, info, args) end end |
#modify(dn, entries, options = {}) ⇒ Object
113 114 115 116 117 118 119 120 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 113 def modify(dn, entries, ={}) super do |dn, entries| info = {:dn => dn, :attributes => entries} execute(:modify, info, :dn => dn, :operations => parse_entries(entries)) end end |
#modify_rdn(dn, new_rdn, delete_old_rdn, new_superior, options = {}) ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 122 def modify_rdn(dn, new_rdn, delete_old_rdn, new_superior, ={}) super do |dn, new_rdn, delete_old_rdn, new_superior| info = { :name => "modify: RDN", :dn => dn, :new_rdn => new_rdn, :delete_old_rdn => delete_old_rdn, } execute(:rename, info, :olddn => dn, :newrdn => new_rdn, :delete_attributes => delete_old_rdn) end end |
#search(options = {}, &block) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 68 def search(={}, &block) super() do |base, scope, filter, attrs, limit, callback| args = { :base => base, :scope => scope, :filter => filter, :attributes => attrs, :size => limit, } info = { :base => base, :scope => scope_name(scope), :filter => filter, :attributes => attrs, } execute(:search, info, args) do |entry| attributes = {} entry.original_attribute_names.each do |name| attributes[name] = entry[name] end callback.call([entry.dn, attributes], block) end end end |
#unbind(options = {}) ⇒ Object
43 44 45 |
# File 'lib/active_ldap/adapter/net_ldap.rb', line 43 def unbind(={}) log("unbind") {@bound = false} end |