mirror of
https://github.com/bitwarden/server.git
synced 2025-05-23 04:21:05 -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.Invited or
|
||||||
OrganizationUserStatusType.Accepted or
|
OrganizationUserStatusType.Accepted or
|
||||||
OrganizationUserStatusType.Confirmed));
|
OrganizationUserStatusType.Confirmed));
|
||||||
|
|
||||||
|
public IEnumerable<PolicyDetails> TwoFactorPoliciesForActiveMemberships =>
|
||||||
|
_policyDetails.Where(p => p.OrganizationUserStatus is
|
||||||
|
OrganizationUserStatusType.Accepted or
|
||||||
|
OrganizationUserStatusType.Confirmed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RequireTwoFactorPolicyRequirementFactory : BasePolicyRequirementFactory<RequireTwoFactorPolicyRequirement>
|
public class RequireTwoFactorPolicyRequirementFactory : BasePolicyRequirementFactory<RequireTwoFactorPolicyRequirement>
|
||||||
|
@ -211,4 +211,56 @@ public class RequireTwoFactorPolicyRequirementFactoryTests
|
|||||||
|
|
||||||
Assert.False(actual.CanBeRestored(false, organizationId));
|
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