mirror of
https://github.com/bitwarden/server
synced 2026-01-03 09:03:44 +00:00
Fixing up logic.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user