public BulkUpdateAdminsResult bulkUpdate(Username currentUser,
List<String> usersToAdd,
List<String> usersToRemove,
List<String> rolesToAdd,
List<String> rolesToRemove,
String md5) {
Set<Admin> existingAdmins = new HashSet<>(systemAdmins());
BulkUpdateAdminsResult result = validateUsersAndRolesForBulkUpdate(usersToRemove, rolesToRemove, existingAdmins);
if (!result.isSuccessful()) {
return result;
}
usersToAdd.forEach(user -> existingAdmins.add(new AdminUser(user)));
rolesToAdd.forEach(role -> existingAdmins.add(new AdminRole(role)));
usersToRemove.forEach(user -> existingAdmins.remove(new AdminUser(new CaseInsensitiveString(user))));
rolesToRemove.forEach(role -> existingAdmins.remove(new AdminRole(new CaseInsensitiveString(role))));
AdminsConfigUpdateCommand command = new AdminsConfigUpdateCommand(goConfigService, new AdminsConfig(existingAdmins),
currentUser, result, entityHashingService, md5);
updateConfig(currentUser, result, command);
result.setAdminsConfig(command.getEntity());
return result;
}