summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/type/user.rb27
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."