Please review pull request #391: #12081 ensure that managehome is respected when deleting users with the pw provider opened by (tdb)
Description:
When deleting a user with managehome set the documentation says the
provider should remove the user's home directory. This fixes the
pw provider to do that by adding the -r flag to the command.
- Opened: Mon Jan 23 17:41:07 UTC 2012
- Based on: puppetlabs:2.7.x (0a4d48fd26bf0aadb533a53fcff9d55ae9883f5f)
- Requested merge: tdb:ticket/2.7.x/12081-missing-pw-userdel-flag (d3cc7d6a24fedc6678fe7e5d7387cb5fa9a65586)
Diff follows:
diff --git a/lib/puppet/provider/user/pw.rb b/lib/puppet/provider/user/pw.rb
index 8423979..cdf0e89 100644
--- a/lib/puppet/provider/user/pw.rb
+++ b/lib/puppet/provider/user/pw.rb
@@ -54,6 +54,12 @@ def modifycmd(param, value)
cmd
end
+ def deletecmd
+ cmd = super
+ cmd << "-r" if @resource.managehome?
+ cmd
+ end
+
def create
super
diff --git a/spec/unit/provider/user/pw_spec.rb b/spec/unit/provider/user/pw_spec.rb
index 495fef3..e90989a 100755
--- a/spec/unit/provider/user/pw_spec.rb
+++ b/spec/unit/provider/user/pw_spec.rb
@@ -106,6 +106,25 @@
provider.expects(:execute).with([provider_class.command(:pw), "userdel", "testuser"])
provider.delete
end
+
+ # The above test covers this, but given the consequences of
+ # accidently deleting a user's home directory it seems better to
+ # have an explicit test.
+ it "should not use -r when managehome is not set" do
+ provider = resource.provider
+ provider.expects(:exists?).returns true
+ resource[:managehome] = false
+ provider.expects(:execute).with(Not(includes("-r")))
+ provider.delete
+ end
+
+ it "should use -r when managehome is set" do
+ provider = resource.provider
+ provider.expects(:exists?).returns true
+ resource[:managehome] = true
+ provider.expects(:execute).with(includes("-r"))
+ provider.delete
+ end
end
describe "when modifying users" do
-- You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
