summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/user/ldap.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider/user/ldap.rb')
-rw-r--r--lib/puppet/provider/user/ldap.rb16
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