mirror of
https://github.com/bitwarden/server.git
synced 2025-05-10 06:02:24 -05:00
extract function OverwriteExisting()
This commit is contained in:
parent
5582f25b64
commit
2f4574f6b7
@ -82,22 +82,7 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand
|
||||
|
||||
if (overwriteExisting)
|
||||
{
|
||||
// Remove existing external users that are not in new user set
|
||||
var usersToDelete = existingExternalUsers.Where(u =>
|
||||
u.Type != OrganizationUserType.Owner &&
|
||||
!newUsersSet.Contains(u.ExternalId) &&
|
||||
existingExternalUsersIdDict.ContainsKey(u.ExternalId));
|
||||
await _organizationUserRepository.DeleteManyAsync(usersToDelete.Select(u => u.Id));
|
||||
events.AddRange(usersToDelete.Select(u => (
|
||||
u,
|
||||
EventType.OrganizationUser_Removed,
|
||||
(DateTime?)DateTime.UtcNow
|
||||
))
|
||||
);
|
||||
foreach (var deletedUser in usersToDelete)
|
||||
{
|
||||
existingExternalUsersIdDict.Remove(deletedUser.ExternalId);
|
||||
}
|
||||
await OverwriteExisting(existingExternalUsers, existingExternalUsersIdDict, newUsersSet, events);
|
||||
}
|
||||
|
||||
if (newUsers?.Any() ?? false)
|
||||
@ -293,4 +278,30 @@ public class ImportOrganizationUserCommand : IImportOrganizationUserCommand
|
||||
}
|
||||
}
|
||||
|
||||
private async Task OverwriteExisting(
|
||||
IEnumerable<OrganizationUserUserDetails> existingExternalUsers,
|
||||
IDictionary<string, Guid> existingExternalUsersIdDict,
|
||||
HashSet<string> newUsersSet,
|
||||
List<(OrganizationUserUserDetails ou, EventType e, DateTime? d)> events
|
||||
)
|
||||
{
|
||||
// Remove existing external users that are not in new user set
|
||||
var usersToDelete = existingExternalUsers.Where(u =>
|
||||
u.Type != OrganizationUserType.Owner &&
|
||||
!newUsersSet.Contains(u.ExternalId) &&
|
||||
existingExternalUsersIdDict.ContainsKey(u.ExternalId));
|
||||
await _organizationUserRepository.DeleteManyAsync(usersToDelete.Select(u => u.Id));
|
||||
events.AddRange(usersToDelete.Select(u => (
|
||||
u,
|
||||
EventType.OrganizationUser_Removed,
|
||||
(DateTime?)DateTime.UtcNow
|
||||
))
|
||||
);
|
||||
foreach (var deletedUser in usersToDelete)
|
||||
{
|
||||
existingExternalUsersIdDict.Remove(deletedUser.ExternalId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user