mirror of
https://github.com/bitwarden/server.git
synced 2025-05-22 12:04:27 -05:00
Add TwoFactorPoliciesForActiveMemberships property to RequireTwoFactorPolicyRequirement and corresponding unit tests for policy retrieval based on user status
This commit is contained in:
parent
1b0632ae52
commit
73bf74dac4
@ -58,6 +58,11 @@ public class RequireTwoFactorPolicyRequirement : IPolicyRequirement
|
||||
OrganizationUserStatusType.Invited or
|
||||
OrganizationUserStatusType.Accepted or
|
||||
OrganizationUserStatusType.Confirmed));
|
||||
|
||||
public IEnumerable<PolicyDetails> TwoFactorPoliciesForActiveMemberships =>
|
||||
_policyDetails.Where(p => p.OrganizationUserStatus is
|
||||
OrganizationUserStatusType.Accepted or
|
||||
OrganizationUserStatusType.Confirmed);
|
||||
}
|
||||
|
||||
public class RequireTwoFactorPolicyRequirementFactory : BasePolicyRequirementFactory<RequireTwoFactorPolicyRequirement>
|
||||
|
@ -211,4 +211,56 @@ public class RequireTwoFactorPolicyRequirementFactoryTests
|
||||
|
||||
Assert.False(actual.CanBeRestored(false, organizationId));
|
||||
}
|
||||
|
||||
[Theory, BitAutoData]
|
||||
public void TwoFactorPoliciesForActiveMemberships_WithNoPolicies_ReturnsEmptyCollection(
|
||||
SutProvider<RequireTwoFactorPolicyRequirementFactory> sutProvider)
|
||||
{
|
||||
var actual = sutProvider.Sut.Create([]);
|
||||
|
||||
Assert.Empty(actual.TwoFactorPoliciesForActiveMemberships);
|
||||
}
|
||||
|
||||
[Theory, BitAutoData]
|
||||
public void TwoFactorPoliciesForActiveMemberships_WithMultiplePolicies_ReturnsActiveMemberships(
|
||||
Guid orgId1, Guid orgId2, Guid orgId3, Guid orgId4,
|
||||
SutProvider<RequireTwoFactorPolicyRequirementFactory> sutProvider)
|
||||
{
|
||||
var policies = new[]
|
||||
{
|
||||
new PolicyDetails
|
||||
{
|
||||
OrganizationId = orgId1,
|
||||
PolicyType = PolicyType.TwoFactorAuthentication,
|
||||
OrganizationUserStatus = OrganizationUserStatusType.Accepted
|
||||
},
|
||||
new PolicyDetails
|
||||
{
|
||||
OrganizationId = orgId2,
|
||||
PolicyType = PolicyType.TwoFactorAuthentication,
|
||||
OrganizationUserStatus = OrganizationUserStatusType.Confirmed
|
||||
},
|
||||
new PolicyDetails
|
||||
{
|
||||
OrganizationId = orgId3,
|
||||
PolicyType = PolicyType.TwoFactorAuthentication,
|
||||
OrganizationUserStatus = OrganizationUserStatusType.Invited
|
||||
},
|
||||
new PolicyDetails
|
||||
{
|
||||
OrganizationId = orgId4,
|
||||
PolicyType = PolicyType.TwoFactorAuthentication,
|
||||
OrganizationUserStatus = OrganizationUserStatusType.Revoked
|
||||
}
|
||||
};
|
||||
|
||||
var actual = sutProvider.Sut.Create(policies);
|
||||
|
||||
var result = actual.TwoFactorPoliciesForActiveMemberships.ToList();
|
||||
Assert.Equal(2, result.Count);
|
||||
Assert.Contains(result, p => p.OrganizationId == orgId1);
|
||||
Assert.Contains(result, p => p.OrganizationId == orgId2);
|
||||
Assert.DoesNotContain(result, p => p.OrganizationId == orgId3);
|
||||
Assert.DoesNotContain(result, p => p.OrganizationId == orgId4);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user