diff options
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | lib/puppet/util/ldap/connection.rb | 12 | ||||
-rwxr-xr-x | spec/unit/util/ldap/connection.rb | 13 |
3 files changed, 26 insertions, 1 deletions
@@ -1,5 +1,7 @@ 0.24.x Fixed #1572 -- file purging now fails if remote sources do not exist. + + Fixed #1521 -- ldap user and password are now used with the default connection. Fixed issues with file descriptors leaking into subprocesses diff --git a/lib/puppet/util/ldap/connection.rb b/lib/puppet/util/ldap/connection.rb index f6530f853..70fe303c5 100644 --- a/lib/puppet/util/ldap/connection.rb +++ b/lib/puppet/util/ldap/connection.rb @@ -17,7 +17,17 @@ class Puppet::Util::Ldap::Connection else false end - new(Puppet[:ldapserver], Puppet[:ldapport], :ssl => ssl) + + options = {} + options[:ssl] = ssl + if user = Puppet.settings[:ldapuser] and user != "" + options[:user] = user + if pass = Puppet.settings[:ldappassword] and pass != "" + options[:password] = pass + end + end + + new(Puppet[:ldapserver], Puppet[:ldapport], options) end def close diff --git a/spec/unit/util/ldap/connection.rb b/spec/unit/util/ldap/connection.rb index 9392466c7..8bc85a620 100755 --- a/spec/unit/util/ldap/connection.rb +++ b/spec/unit/util/ldap/connection.rb @@ -152,5 +152,18 @@ describe Puppet::Util::Ldap::Connection do Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:ssl] == false } Puppet::Util::Ldap::Connection.instance end + + it "should set the ldapuser if one is set" do + Puppet.settings.expects(:value).with(:ldapuser).returns "foo" + Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" } + Puppet::Util::Ldap::Connection.instance + end + + it "should set the ldapuser and ldappassword if both is set" do + Puppet.settings.expects(:value).with(:ldapuser).returns "foo" + Puppet.settings.expects(:value).with(:ldappassword).returns "bar" + Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" and options[:password] == "bar" } + Puppet::Util::Ldap::Connection.instance + end end end |