# File lib/active_ldap/adapter/net_ldap.rb, line 97 def add(dn, entries, options={}) 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
# File lib/active_ldap/adapter/net_ldap.rb, line 50 def bind(options={}) begin super rescue Net::LDAP::LdapError raise AuthenticationError, $!.message end end
# File lib/active_ldap/adapter/net_ldap.rb, line 58 def bind_as_anonymous(options={}) super do execute(:bind, {:name => "bind: anonymous"}, {:method => :anonymous}) true end end
# File lib/active_ldap/adapter/net_ldap.rb, line 23 def connect(options={}) 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, $!.message end end end
# File lib/active_ldap/adapter/net_ldap.rb, line 89 def delete(targets, options={}) super do |target| args = {:dn => target} info = args.dup execute(:delete, info, args) end end
# File lib/active_ldap/adapter/net_ldap.rb, line 111 def modify(dn, entries, options={}) super do |_dn, _entries| info = {:dn => _dn, :attributes => _entries} execute(:modify, info, :dn => _dn, :operations => parse_entries(_entries)) end end
# File lib/active_ldap/adapter/net_ldap.rb, line 120 def modify_rdn(dn, new_rdn, delete_old_rdn, new_superior, options={}) super do |_dn, _new_rdn, _delete_old_rdn, _new_superior| if _new_superior raise NotImplemented.new(_("modify RDN with new superior")) end info = { :name => "modify: RDN", :dn => _dn, :new_rdn => _new_rdn, :new_superior => _new_superior, :delete_old_rdn => _delete_old_rdn } execute(:rename, info, :olddn => _dn, :newrdn => _new_rdn, :delete_attributes => _delete_old_rdn) end end
# File lib/active_ldap/adapter/net_ldap.rb, line 65 def search(options={}) super(options) do |base, scope, filter, attrs, limit| args = { :base => base, :scope => scope, :filter => filter, :attributes => attrs, :size => limit, } info = { :base => base, :scope => scope_name(scope), :filter => filter, :attributes => attrs, :limit => limit } execute(:search, info, args) do |entry| attributes = {} entry.original_attribute_names.each do |name| value = entry[name] attributes[name] = value if value end yield([entry.dn, attributes]) end end end
# File lib/active_ldap/adapter/net_ldap.rb, line 42 def unbind(options={}) super do log("unbind") do @connection.close # Net::LDAP doesn't implement unbind. end end end