Added convenience methods and accessors so that authentication
and seach parameters can be specified more easily than by passing them in an argument hash.
This commit is contained in:
parent
6205656846
commit
0719bed7f6
|
@ -284,6 +284,7 @@ module Net
|
||||||
DefaultHost = "127.0.0.1"
|
DefaultHost = "127.0.0.1"
|
||||||
DefaultPort = 389
|
DefaultPort = 389
|
||||||
DefaultAuth = {:method => :anonymous}
|
DefaultAuth = {:method => :anonymous}
|
||||||
|
DefaultTreebase = "dc=com"
|
||||||
|
|
||||||
|
|
||||||
ResultStrings = {
|
ResultStrings = {
|
||||||
|
@ -322,6 +323,10 @@ module Net
|
||||||
ResultStrings[code] || "unknown result (#{code})"
|
ResultStrings[code] || "unknown result (#{code})"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
attr_accessor :host, :port, :base
|
||||||
|
|
||||||
|
|
||||||
# Instantiate an object of type Net::LDAP to perform directory operations.
|
# Instantiate an object of type Net::LDAP to perform directory operations.
|
||||||
# This constructor takes a Hash containing arguments. The following arguments
|
# This constructor takes a Hash containing arguments. The following arguments
|
||||||
# are supported:
|
# are supported:
|
||||||
|
@ -340,6 +345,7 @@ module Net
|
||||||
@port = args[:port] || DefaultPort
|
@port = args[:port] || DefaultPort
|
||||||
@verbose = false # Make this configurable with a switch on the class.
|
@verbose = false # Make this configurable with a switch on the class.
|
||||||
@auth = args[:auth] || DefaultAuth
|
@auth = args[:auth] || DefaultAuth
|
||||||
|
@base = args[:base] || DefaultTreebase
|
||||||
|
|
||||||
# This variable is only set when we are created with LDAP::open.
|
# This variable is only set when we are created with LDAP::open.
|
||||||
# All of our internal methods will connect using it, or else
|
# All of our internal methods will connect using it, or else
|
||||||
|
@ -347,6 +353,22 @@ module Net
|
||||||
@open_connection = nil
|
@open_connection = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Convenient method to specify your authentication to the LDAP
|
||||||
|
# server. Currently supports simple authentication requiring
|
||||||
|
# a username and password. Observe that on most LDAP servers,
|
||||||
|
# including A/D, the username is a complete DN.
|
||||||
|
# require 'net/ldap'
|
||||||
|
#
|
||||||
|
# ldap = Net::LDAP.new
|
||||||
|
# ldap.host = server_ip_address
|
||||||
|
# ldap.authenticate "cn=Your Username,cn=Users,dc=example,dc=com", "your_psw"
|
||||||
|
#
|
||||||
|
def authenticate username, password
|
||||||
|
@auth = {:method => :simple, :username => username, :password => password}
|
||||||
|
end
|
||||||
|
|
||||||
|
alias_method :auth, :authenticate
|
||||||
|
|
||||||
# #open takes the same parameters as #new. #open makes a network connection to the
|
# #open takes the same parameters as #new. #open makes a network connection to the
|
||||||
# LDAP server and then passes a newly-created Net::LDAP object to the caller-supplied block.
|
# LDAP server and then passes a newly-created Net::LDAP object to the caller-supplied block.
|
||||||
# Within the block, you can call any of the instance methods of Net::LDAP to
|
# Within the block, you can call any of the instance methods of Net::LDAP to
|
||||||
|
@ -515,7 +537,8 @@ module Net
|
||||||
# that the caller can set to suppress the return of a result set,
|
# that the caller can set to suppress the return of a result set,
|
||||||
# if he's planning to process every entry as it comes from the server.
|
# if he's planning to process every entry as it comes from the server.
|
||||||
#
|
#
|
||||||
def search args
|
def search args = {}
|
||||||
|
args[:base] ||= @base
|
||||||
result_set = (args and args[:return_result] == false) ? nil : {}
|
result_set = (args and args[:return_result] == false) ? nil : {}
|
||||||
|
|
||||||
if @open_connection
|
if @open_connection
|
||||||
|
|
Loading…
Reference in a new issue