1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-01 08:02:49 -05:00

Refactor PolicyService to remove uneeded calls

This commit is contained in:
Justin Baur
2021-05-20 19:08:35 -04:00
parent 9284ae410c
commit a48f024113

View File

@ -82,7 +82,6 @@ namespace Bit.Core.Services
var currentPolicy = await _policyRepository.GetByIdAsync(policy.Id); var currentPolicy = await _policyRepository.GetByIdAsync(policy.Id);
if (!currentPolicy?.Enabled ?? true) if (!currentPolicy?.Enabled ?? true)
{ {
Organization organization = null;
var orgUsers = await _organizationUserRepository.GetManyDetailsByOrganizationAsync( var orgUsers = await _organizationUserRepository.GetManyDetailsByOrganizationAsync(
policy.OrganizationId); policy.OrganizationId);
var removableOrgUsers = orgUsers.Where(ou => var removableOrgUsers = orgUsers.Where(ou =>
@ -96,28 +95,26 @@ namespace Bit.Core.Services
{ {
if (!await userService.TwoFactorIsEnabledAsync(orgUser)) if (!await userService.TwoFactorIsEnabledAsync(orgUser))
{ {
organization = organization ?? await _organizationRepository.GetByIdAsync(policy.OrganizationId);
await organizationService.DeleteUserAsync(policy.OrganizationId, orgUser.Id, await organizationService.DeleteUserAsync(policy.OrganizationId, orgUser.Id,
savingUserId); savingUserId);
await _mailService.SendOrganizationUserRemovedForPolicyTwoStepEmailAsync( await _mailService.SendOrganizationUserRemovedForPolicyTwoStepEmailAsync(
organization.Name, orgUser.Email); org.Name, orgUser.Email);
} }
} }
break; break;
case Enums.PolicyType.SingleOrg: case Enums.PolicyType.SingleOrg:
var userOrgs = await _organizationUserRepository.GetManyByManyUsersAsync( var userOrgs = await _organizationUserRepository.GetManyByManyUsersAsync(
removableOrgUsers.Select(ou => ou.UserId.Value)); removableOrgUsers.Select(ou => ou.UserId.Value));
organization = organization ?? await _organizationRepository.GetByIdAsync(policy.OrganizationId);
foreach (var orgUser in removableOrgUsers) foreach (var orgUser in removableOrgUsers)
{ {
if (userOrgs.Any(ou => ou.UserId == orgUser.UserId if (userOrgs.Any(ou => ou.UserId == orgUser.UserId
&& ou.OrganizationId != organization.Id && ou.OrganizationId != org.Id
&& ou.Status != OrganizationUserStatusType.Invited)) && ou.Status != OrganizationUserStatusType.Invited))
{ {
await organizationService.DeleteUserAsync(policy.OrganizationId, orgUser.Id, await organizationService.DeleteUserAsync(policy.OrganizationId, orgUser.Id,
savingUserId); savingUserId);
await _mailService.SendOrganizationUserRemovedForPolicySingleOrgEmailAsync( await _mailService.SendOrganizationUserRemovedForPolicySingleOrgEmailAsync(
organization.Name, orgUser.Email); org.Name, orgUser.Email);
} }
} }
break; break;
@ -126,7 +123,7 @@ namespace Bit.Core.Services
} }
} }
} }
policy.RevisionDate = DateTime.UtcNow; policy.RevisionDate = now;
await _policyRepository.UpsertAsync(policy); await _policyRepository.UpsertAsync(policy);
await _eventService.LogPolicyEventAsync(policy, Enums.EventType.Policy_Updated); await _eventService.LogPolicyEventAsync(policy, Enums.EventType.Policy_Updated);
} }