diff options
Diffstat (limited to 'src/wixext/UtilCompiler.cs')
-rw-r--r-- | src/wixext/UtilCompiler.cs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wixext/UtilCompiler.cs b/src/wixext/UtilCompiler.cs index 65ca406d..672c3f68 100644 --- a/src/wixext/UtilCompiler.cs +++ b/src/wixext/UtilCompiler.cs | |||
@@ -49,6 +49,11 @@ namespace WixToolset.Util | |||
49 | TypeMask = 0xf, | 49 | TypeMask = 0xf, |
50 | } | 50 | } |
51 | 51 | ||
52 | internal enum WixPermissionExAttributes | ||
53 | { | ||
54 | Inheritable = 0x01 | ||
55 | } | ||
56 | |||
52 | internal enum WixRemoveFolderExOn | 57 | internal enum WixRemoveFolderExOn |
53 | { | 58 | { |
54 | Install = 1, | 59 | Install = 1, |
@@ -2367,6 +2372,8 @@ namespace WixToolset.Util | |||
2367 | string domain = null; | 2372 | string domain = null; |
2368 | string[] specialPermissions = null; | 2373 | string[] specialPermissions = null; |
2369 | string user = null; | 2374 | string user = null; |
2375 | var inheritable = YesNoType.NotSet; | ||
2376 | int attributes = 0; | ||
2370 | 2377 | ||
2371 | var permissionType = PermissionType.SecureObjects; | 2378 | var permissionType = PermissionType.SecureObjects; |
2372 | 2379 | ||
@@ -2407,6 +2414,9 @@ namespace WixToolset.Util | |||
2407 | } | 2414 | } |
2408 | domain = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 2415 | domain = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
2409 | break; | 2416 | break; |
2417 | case "Inheritable": | ||
2418 | inheritable = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib); | ||
2419 | break; | ||
2410 | case "User": | 2420 | case "User": |
2411 | user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); | 2421 | user = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib); |
2412 | break; | 2422 | break; |
@@ -2444,6 +2454,8 @@ namespace WixToolset.Util | |||
2444 | this.Messaging.Write(ErrorMessages.GenericReadNotAllowed(sourceLineNumbers)); | 2454 | this.Messaging.Write(ErrorMessages.GenericReadNotAllowed(sourceLineNumbers)); |
2445 | } | 2455 | } |
2446 | 2456 | ||
2457 | attributes |= inheritable == YesNoType.No ? 0 : (int)WixPermissionExAttributes.Inheritable; // default to inheritable. | ||
2458 | |||
2447 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); | 2459 | this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element); |
2448 | 2460 | ||
2449 | if (!this.Messaging.EncounteredError) | 2461 | if (!this.Messaging.EncounteredError) |
@@ -2457,6 +2469,7 @@ namespace WixToolset.Util | |||
2457 | Table = tableName, | 2469 | Table = tableName, |
2458 | Domain = domain, | 2470 | Domain = domain, |
2459 | User = user, | 2471 | User = user, |
2472 | Attributes = attributes, | ||
2460 | Permission = permission, | 2473 | Permission = permission, |
2461 | ComponentRef = componentId, | 2474 | ComponentRef = componentId, |
2462 | }); | 2475 | }); |