diff options
Diffstat (limited to 'lib/puppet')
-rwxr-xr-x | lib/puppet/type/user.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb index c4b31ed3e..fb3a2966e 100755 --- a/lib/puppet/type/user.rb +++ b/lib/puppet/type/user.rb @@ -199,6 +199,33 @@ module Puppet :name ] + case Facter["operatingsystem"].value + when "Darwin": + @@extender = "NInfo" + else + @@extender = "XAdd" + end + + @name = :group + @namevar = :name + + # all of the states are very similar, but syncing is different + # for each _type_ of state + @states.each { |state| + begin + klass = eval("Puppet::State::UserState" + @@extender) + if klass.test + state.send(:include, klass) + else + Puppet.err "Cannot sync %s on %s" % + [state.name, @name] + end + rescue NameError + Puppet.notice "No %s extender for %s" % + [@@extender, state.name] + end + } + @paramdoc[:name] = "User name. While limitations are determined for each operating system, it is generally a good idea to keep to the degenerate 8 characters, beginning with a letter." |