1
0
mirror of https://github.com/bitwarden/server synced 2026-01-03 09:03:44 +00:00

Fixing up logic.

This commit is contained in:
Jared McCannon
2025-11-26 13:59:06 -06:00
parent 69d4218c18
commit 7c5d6aef37
2 changed files with 9 additions and 38 deletions

View File

@@ -1,14 +1,12 @@
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.AutoConfirmUser;
using Bit.Core.AdminConsole.OrganizationFeatures.Policies.PolicyRequirements;
using Bit.Core.AdminConsole.Utilities.v2.Validation;
using Bit.Core.Repositories;
using static Bit.Core.AdminConsole.Utilities.v2.Validation.ValidationResultHelpers;
namespace Bit.Core.AdminConsole.OrganizationFeatures.Policies.Enforcement.AutoConfirm;
public class AutomaticUserConfirmationPolicyEnforcementQuery(
IPolicyRequirementQuery policyRequirementQuery,
IOrganizationUserRepository organizationUserRepository)
IPolicyRequirementQuery policyRequirementQuery)
: IAutomaticUserConfirmationPolicyEnforcementQuery
{
public async Task<ValidationResult<AutomaticUserConfirmationPolicyEnforcementRequest>> IsCompliantAsync(
@@ -18,19 +16,18 @@ public class AutomaticUserConfirmationPolicyEnforcementQuery(
.GetAsync<AutomaticUserConfirmationPolicyRequirement>(request.User.Id);
if (automaticUserConfirmationPolicyRequirement.IsEnabled(request.OrganizationUser.OrganizationId)
&& await OrganizationUserBelongsToAnotherOrganizationAsync(request))
&& OrganizationUserBelongsToAnotherOrganization(request))
{
return Invalid(request, new OrganizationEnforcesSingleOrgPolicy());
}
if (automaticUserConfirmationPolicyRequirement.IsEnabledAndUserIsAProvider(request.OrganizationUser
.OrganizationId))
if (automaticUserConfirmationPolicyRequirement.IsEnabledAndUserIsAProvider(request.OrganizationUser.OrganizationId))
{
return Invalid(request, new ProviderUsersCannotJoin());
}
if (automaticUserConfirmationPolicyRequirement.IsEnabledForOrganizationsOtherThan(request.OrganizationUser
.OrganizationId))
if (automaticUserConfirmationPolicyRequirement
.IsEnabledForOrganizationsOtherThan(request.OrganizationUser.OrganizationId))
{
return Invalid(request, new OtherOrganizationEnforcesSingleOrgPolicy());
}
@@ -38,8 +35,7 @@ public class AutomaticUserConfirmationPolicyEnforcementQuery(
return Valid(request);
}
private async Task<bool> OrganizationUserBelongsToAnotherOrganizationAsync(
AutomaticUserConfirmationPolicyEnforcementRequest request) =>
(await organizationUserRepository.GetManyByUserAsync(request.User.Id)).Any(x =>
x.OrganizationId != request.OrganizationUser.OrganizationId);
private static bool OrganizationUserBelongsToAnotherOrganization(AutomaticUserConfirmationPolicyEnforcementRequest request) =>
request.OtherOrganizationsOrganizationUsers.Any(ou =>
ou.OrganizationId != request.OrganizationUser.OrganizationId);
}