diff options
Diffstat (limited to 'lib/puppet/provider/user/ldap.rb')
| -rw-r--r-- | lib/puppet/provider/user/ldap.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/puppet/provider/user/ldap.rb b/lib/puppet/provider/user/ldap.rb index ba91a871e..0d149ac9a 100644 --- a/lib/puppet/provider/user/ldap.rb +++ b/lib/puppet/provider/user/ldap.rb @@ -12,7 +12,7 @@ Puppet::Type.type(:user).provide :ldap, :parent => Puppet::Provider::Ldap do as it iterates across all existing users to pick the appropriate next one." - confine :true => Puppet.features.ldap? + confine :feature => :ldap, :false => (Puppet[:ldapuser] == "") manages(:posixAccount, :person).at("ou=People").named_by(:uid).and.maps :name => :uid, :password => :userPassword, @@ -32,12 +32,14 @@ Puppet::Type.type(:user).provide :ldap, :parent => Puppet::Provider::Ldap do # Find the next uid after the current largest uid. provider = self manager.generates(:uidNumber).with do - largest = 0 - provider.manager.search.each do |hash| - next unless value = hash[:uid] - num = value[0].to_i - if num > largest - largest = num + largest = 500 + if existing = provider.manager.search + existing.each do |hash| + next unless value = hash[:uid] + num = value[0].to_i + if num > largest + largest = num + end end end largest + 1 |
