summaryrefslogtreecommitdiff
path: root/lib/chef/file_access_control
diff options
context:
space:
mode:
authorsersut <serdar@opscode.com>2013-05-20 10:41:40 -0700
committersersut <serdar@opscode.com>2013-05-20 10:41:40 -0700
commit4a18e1bf98e2a8edabab3b13c674c68150605228 (patch)
tree4a53c1cfcdabfc9ac7117154463e08ebf3a0a214 /lib/chef/file_access_control
parent9f2b02b2bedfb9450b8de90cbfc869583bb84103 (diff)
downloadchef-4a18e1bf98e2a8edabab3b13c674c68150605228.tar.gz
Increase windows ACL testing coverage. Fix children inheritance of windows ACLs.
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