summaryrefslogtreecommitdiff
path: root/lib/chef/file_access_control
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/file_access_control')
-rw-r--r--lib/chef/file_access_control/windows.rb29
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