Skip to content

Commit

Permalink
fix: send mail to opted in users for trial instance in MessageService
Browse files Browse the repository at this point in the history
  • Loading branch information
ytvnr committed Mar 27, 2024
1 parent 008b59f commit 2059dc0
Showing 1 changed file with 11 additions and 2 deletions.
Expand Up @@ -27,6 +27,8 @@
import io.gravitee.repository.management.model.Subscription;
import io.gravitee.rest.api.model.*;
import io.gravitee.rest.api.model.application.ApplicationListItem;
import io.gravitee.rest.api.model.parameters.Key;
import io.gravitee.rest.api.model.parameters.ParameterReferenceType;
import io.gravitee.rest.api.model.permissions.RoleScope;
import io.gravitee.rest.api.model.permissions.SystemRole;
import io.gravitee.rest.api.model.v4.api.GenericApiModel;
Expand All @@ -40,6 +42,7 @@
import io.gravitee.rest.api.service.notification.PortalHook;
import io.gravitee.rest.api.service.v4.ApiTemplateService;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -111,6 +114,9 @@ public class MessageServiceImpl extends AbstractService implements MessageServic
@Autowired
private Environment environment;

@Autowired
private ParameterService parameterService;

private List<String> httpWhitelist;

@Override
Expand Down Expand Up @@ -345,13 +351,16 @@ private Set<String> getRecipientsEmails(ExecutionContext executionContext, Set<S
return Collections.emptySet();
}

Set<String> emails = userService
final boolean isTrialInstance = parameterService.findAsBoolean(executionContext, Key.TRIAL_INSTANCE, ParameterReferenceType.SYSTEM);
final Predicate<UserEntity> excludeIfTrialAndNotOptedIn = userEntity -> !isTrialInstance || userEntity.optedIn();

return userService
.findByIds(executionContext, new ArrayList<>(recipientsId))
.stream()
.filter(userEntity -> !StringUtils.isEmpty(userEntity.getEmail()))
.filter(excludeIfTrialAndNotOptedIn)
.map(UserEntity::getEmail)
.collect(Collectors.toSet());
return emails;
}

private void assertMessageNotEmpty(MessageEntity messageEntity) {
Expand Down

0 comments on commit 2059dc0

Please sign in to comment.