diff options
Diffstat (limited to 'lib/chef/file_access_control')
-rw-r--r-- | lib/chef/file_access_control/windows.rb | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/lib/chef/file_access_control/windows.rb b/lib/chef/file_access_control/windows.rb index be0ece291f..35a16337ab 100644 --- a/lib/chef/file_access_control/windows.rb +++ b/lib/chef/file_access_control/windows.rb @@ -218,17 +218,24 @@ class Chef def calculate_flags(rights) # Handle inheritance flags flags = 0 - case rights[:applies_to_children] - when :containers_only - flags |= CONTAINER_INHERIT_ACE - when :objects_only - flags |= OBJECT_INHERIT_ACE - when true - flags |= CONTAINER_INHERIT_ACE - flags |= OBJECT_INHERIT_ACE - when nil - flags |= CONTAINER_INHERIT_ACE - flags |= OBJECT_INHERIT_ACE + + # + # Configure child inheritence only if the the resource is some + # type of a directory. + # + if resource.is_a? Chef::Resource::Directory + case rights[:applies_to_children] + when :containers_only + flags |= CONTAINER_INHERIT_ACE + when :objects_only + flags |= OBJECT_INHERIT_ACE + when true + flags |= CONTAINER_INHERIT_ACE + flags |= OBJECT_INHERIT_ACE + when nil + flags |= CONTAINER_INHERIT_ACE + flags |= OBJECT_INHERIT_ACE + end end if rights[:applies_to_self] == false |