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.

Reply via email to