diff options
| author | Bevan Weiss <bevan.weiss@gmail.com> | 2024-07-20 13:40:22 +1000 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2025-02-11 23:14:49 -0800 |
| commit | 2c5bb89424b12de812498d568bc1aae2d4098e60 (patch) | |
| tree | bc70e7e27de504d8ad76e47de28051d4edd86a1e /src | |
| parent | 155eae032ff92a2fb6e58b5f7d1668195b725ada (diff) | |
| download | wix-2c5bb89424b12de812498d568bc1aae2d4098e60.tar.gz wix-2c5bb89424b12de812498d568bc1aae2d4098e60.tar.bz2 wix-2c5bb89424b12de812498d568bc1aae2d4098e60.zip | |
Split into domain vs local CAs
Diffstat (limited to '')
5 files changed, 66 insertions, 12 deletions
diff --git a/src/ext/Util/ca/scagroup.cpp b/src/ext/Util/ca/scagroup.cpp index 3d2c3beb..699d9db7 100644 --- a/src/ext/Util/ca/scagroup.cpp +++ b/src/ext/Util/ca/scagroup.cpp | |||
| @@ -553,7 +553,14 @@ HRESULT ScaGroupExecute( | |||
| 553 | // | 553 | // |
| 554 | // Schedule the creation now. | 554 | // Schedule the creation now. |
| 555 | // | 555 | // |
| 556 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"CreateGroup"), pwzActionData, COST_GROUP_ADD); | 556 | if (psg->wzDomain && *psg->wzDomain) |
| 557 | { | ||
| 558 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"CreateDomainGroup"), pwzActionData, COST_GROUP_ADD); | ||
| 559 | } | ||
| 560 | else | ||
| 561 | { | ||
| 562 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"CreateGroup"), pwzActionData, COST_GROUP_ADD); | ||
| 563 | } | ||
| 557 | ExitOnFailure(hr, "failed to schedule CreateGroup"); | 564 | ExitOnFailure(hr, "failed to schedule CreateGroup"); |
| 558 | } | 565 | } |
| 559 | else if (((GROUP_EXISTS_YES == geGroupExists) | 566 | else if (((GROUP_EXISTS_YES == geGroupExists) |
| @@ -569,7 +576,14 @@ HRESULT ScaGroupExecute( | |||
| 569 | // | 576 | // |
| 570 | // Note: We can't rollback the removal of a group which is why RemoveGroup is a commit | 577 | // Note: We can't rollback the removal of a group which is why RemoveGroup is a commit |
| 571 | // CustomAction. | 578 | // CustomAction. |
| 572 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroup"), pwzActionData, COST_GROUP_DELETE); | 579 | if (psg->wzDomain && *psg->wzDomain) |
| 580 | { | ||
| 581 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveDomainGroup"), pwzActionData, COST_GROUP_DELETE); | ||
| 582 | } | ||
| 583 | else | ||
| 584 | { | ||
| 585 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroup"), pwzActionData, COST_GROUP_DELETE); | ||
| 586 | } | ||
| 573 | ExitOnFailure(hr, "failed to schedule RemoveGroup"); | 587 | ExitOnFailure(hr, "failed to schedule RemoveGroup"); |
| 574 | } | 588 | } |
| 575 | 589 | ||
| @@ -641,7 +655,15 @@ HRESULT ScaGroupMembershipRemoveParentsExecute( | |||
| 641 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psg->wzDomain); | 655 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psg->wzDomain); |
| 642 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); | 656 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); |
| 643 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); | 657 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); |
| 644 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | 658 | |
| 659 | if (psgp->wzDomain && *psgp->wzDomain) | ||
| 660 | { | ||
| 661 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveDomainGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | ||
| 662 | } | ||
| 663 | else | ||
| 664 | { | ||
| 665 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | ||
| 666 | } | ||
| 645 | 667 | ||
| 646 | LExit: | 668 | LExit: |
| 647 | ReleaseNullStr(pwzActionData); | 669 | ReleaseNullStr(pwzActionData); |
| @@ -680,7 +702,14 @@ HRESULT ScaGroupMembershipRemoveChildrenExecute( | |||
| 680 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psgc->wzDomain); | 702 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psgc->wzDomain); |
| 681 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); | 703 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); |
| 682 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); | 704 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); |
| 683 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | 705 | if (psg->wzDomain && *psg->wzDomain) |
| 706 | { | ||
| 707 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveDomainGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | ||
| 708 | } | ||
| 709 | else | ||
| 710 | { | ||
| 711 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"RemoveGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_DELETE); | ||
| 712 | } | ||
| 684 | 713 | ||
| 685 | LExit: | 714 | LExit: |
| 686 | ReleaseNullStr(pwzActionData); | 715 | ReleaseNullStr(pwzActionData); |
| @@ -748,7 +777,14 @@ HRESULT ScaGroupMembershipAddParentsExecute( | |||
| 748 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psg->wzDomain); | 777 | ExitOnFailure(hr, "Failed to add child group domain to custom action data: %ls", psg->wzDomain); |
| 749 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); | 778 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); |
| 750 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); | 779 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); |
| 751 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | 780 | if (psgp->wzDomain&&* psgp->wzDomain) |
| 781 | { | ||
| 782 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddDomainGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | ||
| 783 | } | ||
| 784 | else | ||
| 785 | { | ||
| 786 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | ||
| 787 | } | ||
| 752 | 788 | ||
| 753 | LExit: | 789 | LExit: |
| 754 | ReleaseNullStr(pwzActionData); | 790 | ReleaseNullStr(pwzActionData); |
| @@ -790,7 +826,14 @@ HRESULT ScaGroupMembershipAddChildrenExecute( | |||
| 790 | ExitOnFailure(hr, "Failed to add parent group domain to custom action data: %ls", psgc->wzDomain); | 826 | ExitOnFailure(hr, "Failed to add parent group domain to custom action data: %ls", psgc->wzDomain); |
| 791 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); | 827 | hr = WcaWriteIntegerToCaData(psg->iAttributes, &pwzActionData); |
| 792 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); | 828 | ExitOnFailure(hr, "Failed to add group attributes to custom action data: %i", psg->iAttributes); |
| 793 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | 829 | if (psg->wzDomain && *psg->wzDomain) |
| 830 | { | ||
| 831 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddDomainGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | ||
| 832 | } | ||
| 833 | else | ||
| 834 | { | ||
| 835 | hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION6(L"AddGroupMembership"), pwzActionData, COST_GROUPMEMBERSHIP_ADD); | ||
| 836 | } | ||
| 794 | 837 | ||
| 795 | LExit: | 838 | LExit: |
| 796 | ReleaseNullStr(pwzActionData); | 839 | ReleaseNullStr(pwzActionData); |
diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs index c9a184ab..ad56a32d 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs | |||
| @@ -405,8 +405,11 @@ namespace WixToolsetTest.Util | |||
| 405 | { | 405 | { |
| 406 | "Binary:Wix4UtilCA_X64\t[Binary data]", | 406 | "Binary:Wix4UtilCA_X64\t[Binary data]", |
| 407 | "CustomAction:Wix6ConfigureGroups_X64\t1\tWix4UtilCA_X64\tConfigureGroups\t", | 407 | "CustomAction:Wix6ConfigureGroups_X64\t1\tWix4UtilCA_X64\tConfigureGroups\t", |
| 408 | "CustomAction:Wix6CreateDomainGroup_X64\t1025\tWix4UtilCA_X64\tCreateGroup\t", | ||
| 409 | "CustomAction:Wix6CreateDomainGroupRollback_X64\t1281\tWix4UtilCA_X64\tCreateGroupRollback\t", | ||
| 408 | "CustomAction:Wix6CreateGroup_X64\t3073\tWix4UtilCA_X64\tCreateGroup\t", | 410 | "CustomAction:Wix6CreateGroup_X64\t3073\tWix4UtilCA_X64\tCreateGroup\t", |
| 409 | "CustomAction:Wix6CreateGroupRollback_X64\t3329\tWix4UtilCA_X64\tCreateGroupRollback\t", | 411 | "CustomAction:Wix6CreateGroupRollback_X64\t3329\tWix4UtilCA_X64\tCreateGroupRollback\t", |
| 412 | "CustomAction:Wix6RemoveDomainGroup_X64\t1601\tWix4UtilCA_X64\tRemoveGroup\t", | ||
| 410 | "CustomAction:Wix6RemoveGroup_X64\t3649\tWix4UtilCA_X64\tRemoveGroup\t", | 413 | "CustomAction:Wix6RemoveGroup_X64\t3649\tWix4UtilCA_X64\tRemoveGroup\t", |
| 411 | "Wix4Group:TEST_GROUP00\tComponent1\ttestName00\t", | 414 | "Wix4Group:TEST_GROUP00\tComponent1\ttestName00\t", |
| 412 | "Wix4Group:TEST_GROUP01\tComponent1\ttestName01\t", | 415 | "Wix4Group:TEST_GROUP01\tComponent1\ttestName01\t", |
diff --git a/src/ext/Util/wixlib/UtilExtension.wxs b/src/ext/Util/wixlib/UtilExtension.wxs index aa262eca..6f9e07e8 100644 --- a/src/ext/Util/wixlib/UtilExtension.wxs +++ b/src/ext/Util/wixlib/UtilExtension.wxs | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | </Fragment> | 22 | </Fragment> |
| 23 | 23 | ||
| 24 | <Fragment> | 24 | <Fragment> |
| 25 | <UI Id="ConfigureGroupGroupsErrorText"> | 25 | <UI Id="ConfigureGroupMembershipErrorText"> |
| 26 | <Error Id="$(var.msierrGRPFailedGroupGroupAdd)" Message="!(loc.msierrGRPFailedGroupGroupAdd)" /> | 26 | <Error Id="$(var.msierrGRPFailedGroupGroupAdd)" Message="!(loc.msierrGRPFailedGroupGroupAdd)" /> |
| 27 | </UI> | 27 | </UI> |
| 28 | </Fragment> | 28 | </Fragment> |
diff --git a/src/ext/Util/wixlib/UtilExtension_Platform.wxi b/src/ext/Util/wixlib/UtilExtension_Platform.wxi index 71166d4f..d28c8df9 100644 --- a/src/ext/Util/wixlib/UtilExtension_Platform.wxi +++ b/src/ext/Util/wixlib/UtilExtension_Platform.wxi | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | 1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> |
| 2 | 2 | ||
| 3 | 3 | ||
| 4 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 4 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| @@ -139,17 +139,26 @@ | |||
| 139 | <CustomAction Id="$(var.Prefix6)CreateGroupRollback$(var.Suffix)" DllEntry="CreateGroupRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 139 | <CustomAction Id="$(var.Prefix6)CreateGroupRollback$(var.Suffix)" DllEntry="CreateGroupRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 140 | <!-- RemoveGroup is a type commit action because it is not possible to rollback the removal of a group --> | 140 | <!-- RemoveGroup is a type commit action because it is not possible to rollback the removal of a group --> |
| 141 | <CustomAction Id="$(var.Prefix6)RemoveGroup$(var.Suffix)" DllEntry="RemoveGroup" Impersonate="no" Execute="commit" Return="ignore" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 141 | <CustomAction Id="$(var.Prefix6)RemoveGroup$(var.Suffix)" DllEntry="RemoveGroup" Impersonate="no" Execute="commit" Return="ignore" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 142 | |||
| 143 | <CustomAction Id="$(var.Prefix6)CreateDomainGroup$(var.Suffix)" DllEntry="CreateGroup" Impersonate="yes" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 144 | <CustomAction Id="$(var.Prefix6)CreateDomainGroupRollback$(var.Suffix)" DllEntry="CreateGroupRollback" Impersonate="yes" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 145 | <!-- RemoveGroup is a type commit action because it is not possible to rollback the removal of a group --> | ||
| 146 | <CustomAction Id="$(var.Prefix6)RemoveDomainGroup$(var.Suffix)" DllEntry="RemoveGroup" Impersonate="yes" Execute="commit" Return="ignore" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 142 | <InstallExecuteSequence> | 147 | <InstallExecuteSequence> |
| 143 | <Custom Action="virtual $(var.Prefix6)ConfigureGroups$(var.Suffix)" Before="InstallFiles" Condition="VersionNT > 400" /> | 148 | <Custom Action="virtual $(var.Prefix6)ConfigureGroups$(var.Suffix)" Before="InstallFiles" Condition="VersionNT > 400" /> |
| 144 | </InstallExecuteSequence> | 149 | </InstallExecuteSequence> |
| 145 | </Fragment> | 150 | </Fragment> |
| 146 | 151 | ||
| 147 | <Fragment> | 152 | <Fragment> |
| 148 | <UIRef Id="ConfigureGroupGroupsErrorText" /> | 153 | <UIRef Id="ConfigureGroupMembershipErrorText" /> |
| 149 | <CustomAction Id="$(var.Prefix6)AddGroupMembership$(var.Suffix)" DllEntry="AddGroupMembership" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 154 | <CustomAction Id="$(var.Prefix6)AddGroupMembership$(var.Suffix)" DllEntry="AddGroupMembership" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 150 | <CustomAction Id="$(var.Prefix6)AddGroupMembershipRollback$(var.Suffix)" DllEntry="AddGroupMembershipRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 155 | <CustomAction Id="$(var.Prefix6)AddGroupMembershipRollback$(var.Suffix)" DllEntry="AddGroupMembershipRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 151 | <CustomAction Id="$(var.Prefix6)RemoveGroupMembership$(var.Suffix)" DllEntry="RemoveGroupMembership" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 156 | <CustomAction Id="$(var.Prefix6)RemoveGroupMembership$(var.Suffix)" DllEntry="RemoveGroupMembership" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 152 | <CustomAction Id="$(var.Prefix6)RemoveGroupMembershipRollback$(var.Suffix)" DllEntry="RemoveGroupMembershipRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | 157 | <CustomAction Id="$(var.Prefix6)RemoveGroupMembershipRollback$(var.Suffix)" DllEntry="RemoveGroupMembershipRollback" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> |
| 158 | <CustomAction Id="$(var.Prefix6)AddDomainGroupMembership$(var.Suffix)" DllEntry="AddGroupMembership" Impersonate="yes" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 159 | <CustomAction Id="$(var.Prefix6)AddDomainGroupMembershipRollback$(var.Suffix)" DllEntry="AddGroupMembershipRollback" Impersonate="yes" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 160 | <CustomAction Id="$(var.Prefix6)RemoveDomainGroupMembership$(var.Suffix)" DllEntry="RemoveGroupMembership" Impersonate="yes" Execute="deferred" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 161 | <CustomAction Id="$(var.Prefix6)RemoveDomainGroupMembershipRollback$(var.Suffix)" DllEntry="RemoveGroupMembershipRollback" Impersonate="yes" Execute="rollback" Return="check" SuppressModularization="yes" BinaryRef="$(var.Prefix)UtilCA$(var.Suffix)" /> | ||
| 153 | </Fragment> | 162 | </Fragment> |
| 154 | 163 | ||
| 155 | <Fragment> | 164 | <Fragment> |
diff --git a/src/test/msi/TestData/UtilExtensionGroupTests/ProductNestedGroups/product.wxs b/src/test/msi/TestData/UtilExtensionGroupTests/ProductNestedGroups/product.wxs index 15328cb3..c27eb27a 100644 --- a/src/test/msi/TestData/UtilExtensionGroupTests/ProductNestedGroups/product.wxs +++ b/src/test/msi/TestData/UtilExtensionGroupTests/ProductNestedGroups/product.wxs | |||
| @@ -7,12 +7,11 @@ | |||
| 7 | <ComponentRef Id="Component1" /> | 7 | <ComponentRef Id="Component1" /> |
| 8 | </ComponentGroup> | 8 | </ComponentGroup> |
| 9 | 9 | ||
| 10 | <Property Id="TEMPDOMAIN" Secure="yes" /> | 10 | <Property Id="TEMPDOMAIN" Secure="yes" Value="TESTDOMAIN" /> |
| 11 | <Property Id="TEMPGROUPNAME" Secure="yes" /> | ||
| 12 | </Fragment> | 11 | </Fragment> |
| 13 | 12 | ||
| 14 | <Fragment> | 13 | <Fragment> |
| 15 | <util:Group Id="AUTH_USERS" Name="Authenticated Users" > | 14 | <util:Group Id="AUTH_USERS" Name="Authenticated Users" Domain="[TEMPDOMAIN]" > |
| 16 | <util:GroupRef Id="TEST_GROUP1" /> | 15 | <util:GroupRef Id="TEST_GROUP1" /> |
| 17 | <util:GroupRef Id="TEST_GROUP2" /> | 16 | <util:GroupRef Id="TEST_GROUP2" /> |
| 18 | </util:Group> | 17 | </util:Group> |
