diff --git a/src/Core/AdminConsole/Enums/PolicyType.cs b/src/Core/AdminConsole/Enums/PolicyType.cs index f72637f862..ab39e543f8 100644 --- a/src/Core/AdminConsole/Enums/PolicyType.cs +++ b/src/Core/AdminConsole/Enums/PolicyType.cs @@ -7,7 +7,7 @@ public enum PolicyType : byte PasswordGenerator = 2, SingleOrg = 3, RequireSso = 4, - PersonalOwnership = 5, + OrganizationDataOwnership = 5, DisableSend = 6, SendOptions = 7, ResetPassword = 8, @@ -35,7 +35,7 @@ public static class PolicyTypeExtensions PolicyType.PasswordGenerator => "Password generator", PolicyType.SingleOrg => "Single organization", PolicyType.RequireSso => "Require single sign-on authentication", - PolicyType.PersonalOwnership => "Remove individual vault", + PolicyType.OrganizationDataOwnership => "Enforce organization data ownership", PolicyType.DisableSend => "Remove Send", PolicyType.SendOptions => "Send options", PolicyType.ResetPassword => "Account recovery administration", diff --git a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommand.cs b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommand.cs index dd118d7ea3..62e5d60191 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommand.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommand.cs @@ -223,7 +223,7 @@ public class ConfirmOrganizationUserCommand : IConfirmOrganizationUserCommand private async Task HandleConfirmationSideEffectsAsync(Guid organizationId, OrganizationUser organizationUser, string defaultUserCollectionName) { - // Create DefaultUserCollection type collection for the user if the PersonalOwnership policy is enabled for the organization + // Create DefaultUserCollection type collection for the user if the OrganizationDataOwnership policy is enabled for the organization var requiresDefaultCollection = await OrganizationRequiresDefaultCollectionAsync(organizationId, organizationUser.UserId.Value, defaultUserCollectionName); if (requiresDefaultCollection) { @@ -244,8 +244,8 @@ public class ConfirmOrganizationUserCommand : IConfirmOrganizationUserCommand return false; } - var personalOwnershipRequirement = await _policyRequirementQuery.GetAsync(userId); - return personalOwnershipRequirement.RequiresDefaultCollection(organizationId); + var organizationDataOwnershipRequirement = await _policyRequirementQuery.GetAsync(userId); + return organizationDataOwnershipRequirement.RequiresDefaultCollection(organizationId); } private async Task CreateDefaultCollectionAsync(Guid organizationId, Guid organizationUserId, string defaultCollectionName) diff --git a/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirement.cs b/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirement.cs new file mode 100644 index 0000000000..7ccb3f7807 --- /dev/null +++ b/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirement.cs @@ -0,0 +1,72 @@ +using Bit.Core.AdminConsole.Enums; +using Bit.Core.AdminConsole.Models.Data.Organizations.Policies; + +namespace Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements; + +/// +/// Represents the Organization Data Ownership policy state. +/// +public enum OrganizationDataOwnershipState +{ + /// + /// Organization Data Ownership is enforced- members are required to save items to an organization. + /// + Enabled = 1, + + /// + /// Organization Data Ownership is not enforced- users can save items to their personal vault. + /// + Disabled = 2 +} + +/// +/// Policy requirements for the Organization data ownership policy +/// +public class OrganizationDataOwnershipPolicyRequirement : IPolicyRequirement +{ + private readonly IEnumerable _organizationIdsWithPolicyEnabled; + + /// + /// The organization data ownership state for the user. + /// + /// + /// The collection of Organization IDs that have the Organization Data Ownership policy enabled. + /// + public OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState organizationDataOwnershipState, + IEnumerable organizationIdsWithPolicyEnabled) + { + _organizationIdsWithPolicyEnabled = organizationIdsWithPolicyEnabled ?? []; + State = organizationDataOwnershipState; + } + + /// + /// The Organization data ownership policy state for the user. + /// + public OrganizationDataOwnershipState State { get; } + + /// + /// Returns true if the Organization Data Ownership policy is enforced in that organization. + /// + public bool RequiresDefaultCollection(Guid organizationId) + { + return _organizationIdsWithPolicyEnabled.Contains(organizationId); + } +} + +public class OrganizationDataOwnershipPolicyRequirementFactory : BasePolicyRequirementFactory +{ + public override PolicyType PolicyType => PolicyType.OrganizationDataOwnership; + + public override OrganizationDataOwnershipPolicyRequirement Create(IEnumerable policyDetails) + { + var organizationDataOwnershipState = policyDetails.Any() + ? OrganizationDataOwnershipState.Enabled + : OrganizationDataOwnershipState.Disabled; + var organizationIdsWithPolicyEnabled = policyDetails.Select(p => p.OrganizationId).ToHashSet(); + + return new OrganizationDataOwnershipPolicyRequirement( + organizationDataOwnershipState, + organizationIdsWithPolicyEnabled); + } +} diff --git a/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirement.cs b/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirement.cs deleted file mode 100644 index 219d3f1bf8..0000000000 --- a/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirement.cs +++ /dev/null @@ -1,72 +0,0 @@ -using Bit.Core.AdminConsole.Enums; -using Bit.Core.AdminConsole.Models.Data.Organizations.Policies; - -namespace Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements; - -/// -/// Represents the personal ownership policy state. -/// -public enum PersonalOwnershipState -{ - /// - /// Personal ownership is allowed - users can save items to their personal vault. - /// - Allowed, - - /// - /// Personal ownership is restricted - members are required to save items to an organization. - /// - Restricted -} - -/// -/// Policy requirements for the Disable Personal Ownership policy. -/// -public class PersonalOwnershipPolicyRequirement : IPolicyRequirement -{ - private readonly IEnumerable _organizationIdsWithPolicyEnabled; - - /// - /// The personal ownership state for the user. - /// - /// - /// The collection of Organization IDs that have the Disable Personal Ownership policy enabled. - /// - public PersonalOwnershipPolicyRequirement( - PersonalOwnershipState personalOwnershipState, - IEnumerable organizationIdsWithPolicyEnabled) - { - _organizationIdsWithPolicyEnabled = organizationIdsWithPolicyEnabled ?? []; - State = personalOwnershipState; - } - - /// - /// The personal ownership policy state for the user. - /// - public PersonalOwnershipState State { get; } - - /// - /// Returns true if the Disable Personal Ownership policy is enforced in that organization. - /// - public bool RequiresDefaultCollection(Guid organizationId) - { - return _organizationIdsWithPolicyEnabled.Contains(organizationId); - } -} - -public class PersonalOwnershipPolicyRequirementFactory : BasePolicyRequirementFactory -{ - public override PolicyType PolicyType => PolicyType.PersonalOwnership; - - public override PersonalOwnershipPolicyRequirement Create(IEnumerable policyDetails) - { - var personalOwnershipState = policyDetails.Any() - ? PersonalOwnershipState.Restricted - : PersonalOwnershipState.Allowed; - var organizationIdsWithPolicyEnabled = policyDetails.Select(p => p.OrganizationId).ToHashSet(); - - return new PersonalOwnershipPolicyRequirement( - personalOwnershipState, - organizationIdsWithPolicyEnabled); - } -} diff --git a/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyServiceCollectionExtensions.cs b/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyServiceCollectionExtensions.cs index f98135b70d..87fdcbe543 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyServiceCollectionExtensions.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyServiceCollectionExtensions.cs @@ -34,7 +34,7 @@ public static class PolicyServiceCollectionExtensions services.AddScoped, DisableSendPolicyRequirementFactory>(); services.AddScoped, SendOptionsPolicyRequirementFactory>(); services.AddScoped, ResetPasswordPolicyRequirementFactory>(); - services.AddScoped, PersonalOwnershipPolicyRequirementFactory>(); + services.AddScoped, OrganizationDataOwnershipPolicyRequirementFactory>(); services.AddScoped, RequireSsoPolicyRequirementFactory>(); services.AddScoped, RequireTwoFactorPolicyRequirementFactory>(); } diff --git a/src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs b/src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs index 9fc6238143..829eedc34d 100644 --- a/src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs +++ b/src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs @@ -55,11 +55,11 @@ public class ImportCiphersCommand : IImportCiphersCommand Guid importingUserId) { // Make sure the user can save new ciphers to their personal vault - var isPersonalVaultRestricted = _featureService.IsEnabled(FeatureFlagKeys.PolicyRequirements) - ? (await _policyRequirementQuery.GetAsync(importingUserId)).State == PersonalOwnershipState.Restricted - : await _policyService.AnyPoliciesApplicableToUserAsync(importingUserId, PolicyType.PersonalOwnership); + var organizationDataOwnershipEnabled = _featureService.IsEnabled(FeatureFlagKeys.PolicyRequirements) + ? (await _policyRequirementQuery.GetAsync(importingUserId)).State == OrganizationDataOwnershipState.Enabled + : await _policyService.AnyPoliciesApplicableToUserAsync(importingUserId, PolicyType.OrganizationDataOwnership); - if (isPersonalVaultRestricted) + if (organizationDataOwnershipEnabled) { throw new BadRequestException("You cannot import items into your personal vault because you are " + "a member of an organization which forbids it."); diff --git a/src/Core/Vault/Services/Implementations/CipherService.cs b/src/Core/Vault/Services/Implementations/CipherService.cs index 5fa27039c2..42221adf4b 100644 --- a/src/Core/Vault/Services/Implementations/CipherService.cs +++ b/src/Core/Vault/Services/Implementations/CipherService.cs @@ -142,11 +142,11 @@ public class CipherService : ICipherService } else { - var isPersonalVaultRestricted = _featureService.IsEnabled(FeatureFlagKeys.PolicyRequirements) - ? (await _policyRequirementQuery.GetAsync(savingUserId)).State == PersonalOwnershipState.Restricted - : await _policyService.AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.PersonalOwnership); + var organizationDataOwnershipEnabled = _featureService.IsEnabled(FeatureFlagKeys.PolicyRequirements) + ? (await _policyRequirementQuery.GetAsync(savingUserId)).State == OrganizationDataOwnershipState.Enabled + : await _policyService.AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.OrganizationDataOwnership); - if (isPersonalVaultRestricted) + if (organizationDataOwnershipEnabled) { throw new BadRequestException("Due to an Enterprise Policy, you are restricted from saving items to your personal vault."); } diff --git a/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommandTests.cs b/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommandTests.cs index 1732f61d5e..0bb38f7d0b 100644 --- a/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommandTests.cs +++ b/test/Core.Test/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommandTests.cs @@ -445,7 +445,7 @@ public class ConfirmOrganizationUserCommandTests } [Theory, BitAutoData] - public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithPersonalOwnershipPolicyApplicable_WithValidCollectionName_CreatesDefaultCollection( + public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithOrganizationDataOwnershipPolicyApplicable_WithValidCollectionName_CreatesDefaultCollection( Organization organization, OrganizationUser confirmingUser, [OrganizationUser(OrganizationUserStatusType.Accepted)] OrganizationUser orgUser, User user, string key, string collectionName, SutProvider sutProvider) @@ -461,9 +461,9 @@ public class ConfirmOrganizationUserCommandTests sutProvider.GetDependency().IsEnabled(FeatureFlagKeys.CreateDefaultLocation).Returns(true); sutProvider.GetDependency() - .GetAsync(user.Id) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Restricted, + .GetAsync(user.Id) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Enabled, [organization.Id])); await sutProvider.Sut.ConfirmUserAsync(orgUser.OrganizationId, orgUser.Id, key, confirmingUser.Id, collectionName); @@ -482,7 +482,7 @@ public class ConfirmOrganizationUserCommandTests } [Theory, BitAutoData] - public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithPersonalOwnershipPolicyApplicable_WithInvalidCollectionName_DoesNotCreateDefaultCollection( + public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithOrganizationDataOwnershipPolicyApplicable_WithInvalidCollectionName_DoesNotCreateDefaultCollection( Organization org, OrganizationUser confirmingUser, [OrganizationUser(OrganizationUserStatusType.Accepted)] OrganizationUser orgUser, User user, string key, SutProvider sutProvider) @@ -498,9 +498,9 @@ public class ConfirmOrganizationUserCommandTests sutProvider.GetDependency().IsEnabled(FeatureFlagKeys.CreateDefaultLocation).Returns(true); sutProvider.GetDependency() - .GetAsync(user.Id) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Restricted, + .GetAsync(user.Id) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Enabled, [org.Id])); await sutProvider.Sut.ConfirmUserAsync(orgUser.OrganizationId, orgUser.Id, key, confirmingUser.Id, ""); @@ -511,7 +511,7 @@ public class ConfirmOrganizationUserCommandTests } [Theory, BitAutoData] - public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithPersonalOwnershipPolicyNotApplicable_DoesNotCreateDefaultCollection( + public async Task ConfirmUserAsync_WithCreateDefaultLocationEnabled_WithOrganizationDataOwnershipPolicyNotApplicable_DoesNotCreateDefaultCollection( Organization org, OrganizationUser confirmingUser, [OrganizationUser(OrganizationUserStatusType.Accepted)] OrganizationUser orgUser, User user, string key, string collectionName, SutProvider sutProvider) @@ -526,9 +526,9 @@ public class ConfirmOrganizationUserCommandTests sutProvider.GetDependency().IsEnabled(FeatureFlagKeys.CreateDefaultLocation).Returns(true); sutProvider.GetDependency() - .GetAsync(user.Id) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Restricted, + .GetAsync(user.Id) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Enabled, [Guid.NewGuid()])); await sutProvider.Sut.ConfirmUserAsync(orgUser.OrganizationId, orgUser.Id, key, confirmingUser.Id, collectionName); diff --git a/test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirementFactoryTests.cs b/test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirementFactoryTests.cs similarity index 58% rename from test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirementFactoryTests.cs rename to test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirementFactoryTests.cs index dfac394243..95037efb97 100644 --- a/test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/PersonalOwnershipPolicyRequirementFactoryTests.cs +++ b/test/Core.Test/AdminConsole/OrganizationFeatures/Policies/PolicyRequirements/OrganizationDataOwnershipPolicyRequirementFactoryTests.cs @@ -9,30 +9,30 @@ using Xunit; namespace Bit.Core.Test.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements; [SutProviderCustomize] -public class PersonalOwnershipPolicyRequirementFactoryTests +public class OrganizationDataOwnershipPolicyRequirementFactoryTests { [Theory, BitAutoData] - public void State_WithNoPolicies_ReturnsAllowed(SutProvider sutProvider) + public void State_WithNoPolicies_ReturnsAllowed(SutProvider sutProvider) { var actual = sutProvider.Sut.Create([]); - Assert.Equal(PersonalOwnershipState.Allowed, actual.State); + Assert.Equal(OrganizationDataOwnershipState.Disabled, actual.State); } [Theory, BitAutoData] - public void State_WithPersonalOwnershipPolicies_ReturnsRestricted( - [PolicyDetails(PolicyType.PersonalOwnership)] PolicyDetails[] policies, - SutProvider sutProvider) + public void State_WithOrganizationDataOwnershipPolicies_ReturnsRestricted( + [PolicyDetails(PolicyType.OrganizationDataOwnership)] PolicyDetails[] policies, + SutProvider sutProvider) { var actual = sutProvider.Sut.Create(policies); - Assert.Equal(PersonalOwnershipState.Restricted, actual.State); + Assert.Equal(OrganizationDataOwnershipState.Enabled, actual.State); } [Theory, BitAutoData] public void RequiresDefaultCollection_WithNoPolicies_ReturnsFalse( Guid organizationId, - SutProvider sutProvider) + SutProvider sutProvider) { var actual = sutProvider.Sut.Create([]); @@ -40,10 +40,10 @@ public class PersonalOwnershipPolicyRequirementFactoryTests } [Theory, BitAutoData] - public void RequiresDefaultCollection_WithPersonalOwnershipPolicies_ReturnsCorrectResult( - [PolicyDetails(PolicyType.PersonalOwnership)] PolicyDetails[] policies, + public void RequiresDefaultCollection_WithOrganizationDataOwnershipPolicies_ReturnsCorrectResult( + [PolicyDetails(PolicyType.OrganizationDataOwnership)] PolicyDetails[] policies, Guid nonPolicyOrganizationId, - SutProvider sutProvider) + SutProvider sutProvider) { var actual = sutProvider.Sut.Create(policies); diff --git a/test/Core.Test/Tools/ImportFeatures/ImportCiphersAsyncCommandTests.cs b/test/Core.Test/Tools/ImportFeatures/ImportCiphersAsyncCommandTests.cs index f61c2f4443..1b50779c57 100644 --- a/test/Core.Test/Tools/ImportFeatures/ImportCiphersAsyncCommandTests.cs +++ b/test/Core.Test/Tools/ImportFeatures/ImportCiphersAsyncCommandTests.cs @@ -31,7 +31,7 @@ public class ImportCiphersAsyncCommandTests SutProvider sutProvider) { sutProvider.GetDependency() - .AnyPoliciesApplicableToUserAsync(importingUserId, PolicyType.PersonalOwnership) + .AnyPoliciesApplicableToUserAsync(importingUserId, PolicyType.OrganizationDataOwnership) .Returns(false); sutProvider.GetDependency() @@ -51,7 +51,7 @@ public class ImportCiphersAsyncCommandTests } [Theory, BitAutoData] - public async Task ImportIntoIndividualVaultAsync_WithPolicyRequirementsEnabled_WithDisablePersonalOwnershipPolicyDisabled_Success( + public async Task ImportIntoIndividualVaultAsync_WithPolicyRequirementsEnabled_WithOrganizationDataOwnershipPolicyDisabled_Success( Guid importingUserId, List ciphers, SutProvider sutProvider) @@ -61,9 +61,9 @@ public class ImportCiphersAsyncCommandTests .Returns(true); sutProvider.GetDependency() - .GetAsync(importingUserId) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Allowed, + .GetAsync(importingUserId) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Disabled, [])); sutProvider.GetDependency() @@ -91,7 +91,7 @@ public class ImportCiphersAsyncCommandTests ciphers.ForEach(c => c.UserId = userId); sutProvider.GetDependency() - .AnyPoliciesApplicableToUserAsync(userId, PolicyType.PersonalOwnership) + .AnyPoliciesApplicableToUserAsync(userId, PolicyType.OrganizationDataOwnership) .Returns(true); var folderRelationships = new List>(); @@ -103,7 +103,7 @@ public class ImportCiphersAsyncCommandTests } [Theory, BitAutoData] - public async Task ImportIntoIndividualVaultAsync_WithPolicyRequirementsEnabled_WithDisablePersonalOwnershipPolicyEnabled_ThrowsBadRequestException( + public async Task ImportIntoIndividualVaultAsync_WithPolicyRequirementsEnabled_WithOrganizationDataOwnershipPolicyEnabled_ThrowsBadRequestException( List folders, List ciphers, SutProvider sutProvider) @@ -117,9 +117,9 @@ public class ImportCiphersAsyncCommandTests .Returns(true); sutProvider.GetDependency() - .GetAsync(userId) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Restricted, + .GetAsync(userId) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Enabled, [Guid.NewGuid()])); var folderRelationships = new List>(); diff --git a/test/Core.Test/Vault/Services/CipherServiceTests.cs b/test/Core.Test/Vault/Services/CipherServiceTests.cs index 1bd41e9f01..0cee6530c2 100644 --- a/test/Core.Test/Vault/Services/CipherServiceTests.cs +++ b/test/Core.Test/Vault/Services/CipherServiceTests.cs @@ -114,7 +114,7 @@ public class CipherServiceTests [Theory] [BitAutoData] - public async Task SaveDetailsAsync_PersonalVault_WithDisablePersonalOwnershipPolicyEnabled_Throws( + public async Task SaveDetailsAsync_PersonalVault_WithOrganizationDataOwnershipPolicyEnabled_Throws( SutProvider sutProvider, CipherDetails cipher, Guid savingUserId) @@ -124,7 +124,7 @@ public class CipherServiceTests cipher.OrganizationId = null; sutProvider.GetDependency() - .AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.PersonalOwnership) + .AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.OrganizationDataOwnership) .Returns(true); var exception = await Assert.ThrowsAsync( @@ -134,7 +134,7 @@ public class CipherServiceTests [Theory] [BitAutoData] - public async Task SaveDetailsAsync_PersonalVault_WithDisablePersonalOwnershipPolicyDisabled_Succeeds( + public async Task SaveDetailsAsync_PersonalVault_WithOrganizationDataOwnershipPolicyDisabled_Succeeds( SutProvider sutProvider, CipherDetails cipher, Guid savingUserId) @@ -144,7 +144,7 @@ public class CipherServiceTests cipher.OrganizationId = null; sutProvider.GetDependency() - .AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.PersonalOwnership) + .AnyPoliciesApplicableToUserAsync(savingUserId, PolicyType.OrganizationDataOwnership) .Returns(false); await sutProvider.Sut.SaveDetailsAsync(cipher, savingUserId, null); @@ -156,7 +156,7 @@ public class CipherServiceTests [Theory] [BitAutoData] - public async Task SaveDetailsAsync_PersonalVault_WithPolicyRequirementsEnabled_WithDisablePersonalOwnershipPolicyEnabled_Throws( + public async Task SaveDetailsAsync_PersonalVault_WithPolicyRequirementsEnabled_WithOrganizationDataOwnershipPolicyEnabled_Throws( SutProvider sutProvider, CipherDetails cipher, Guid savingUserId) @@ -170,9 +170,9 @@ public class CipherServiceTests .Returns(true); sutProvider.GetDependency() - .GetAsync(savingUserId) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Restricted, + .GetAsync(savingUserId) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Enabled, [Guid.NewGuid()])); var exception = await Assert.ThrowsAsync( @@ -182,7 +182,7 @@ public class CipherServiceTests [Theory] [BitAutoData] - public async Task SaveDetailsAsync_PersonalVault_WithPolicyRequirementsEnabled_WithDisablePersonalOwnershipPolicyDisabled_Succeeds( + public async Task SaveDetailsAsync_PersonalVault_WithPolicyRequirementsEnabled_WithOrganizationDataOwnershipPolicyDisabled_Succeeds( SutProvider sutProvider, CipherDetails cipher, Guid savingUserId) @@ -196,9 +196,9 @@ public class CipherServiceTests .Returns(true); sutProvider.GetDependency() - .GetAsync(savingUserId) - .Returns(new PersonalOwnershipPolicyRequirement( - PersonalOwnershipState.Allowed, + .GetAsync(savingUserId) + .Returns(new OrganizationDataOwnershipPolicyRequirement( + OrganizationDataOwnershipState.Disabled, [])); await sutProvider.Sut.SaveDetailsAsync(cipher, savingUserId, null);