From 683a9e6ad8ff147e135fa0911d93a7e0c085e516 Mon Sep 17 00:00:00 2001 From: John Keiser Date: Thu, 26 Jan 2012 13:43:35 -0800 Subject: [PATCH] Don't stamp redundant permissions onto child directories --- chef/lib/chef/provider/remote_directory.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/chef/lib/chef/provider/remote_directory.rb b/chef/lib/chef/provider/remote_directory.rb index ece211faf1a..3e16ac9dfae 100644 --- a/chef/lib/chef/provider/remote_directory.rb +++ b/chef/lib/chef/provider/remote_directory.rb @@ -131,10 +131,14 @@ def resource_for_directory(path) dir = Chef::Resource::Directory.new(path, run_context) dir.cookbook_name = @new_resource.cookbook || @new_resource.cookbook_name if Chef::Platform.windows? && @new_resource.rights - @new_resource.rights.each do |rights| #rights is a hash - permissions = rights.delete(:permission) #delete will return the value or nil if not found - principal = rights.delete(:principal) - dir.rights(permissions, principal, rights) + # rights are only meant to be applied to the toppest-level directory; + # Windows will handle inheritance. + if path == @new_resource.path + @new_resource.rights.each do |rights| #rights is a hash + permissions = rights.delete(:permissions) #delete will return the value or nil if not found + principals = rights.delete(:principals) + dir.rights(permissions, principals, rights) + end end end dir.mode(@new_resource.mode) if @new_resource.mode