docs: @Override
    public Multimap<String, NotificationChannel> findSubscribedRecipientsForDispatcher(NotificationDispatcher dispatcher,
      String projectKey, SubscriberPermissionsOnProject subscriberPermissionsOnProject) {
      verifyProjectKey(projectKey);
      String dispatcherKey = dispatcher.getKey();
  
      Set<SubscriberAndChannel> subscriberAndChannels = Arrays.stream(notificationChannels)
        .flatMap(notificationChannel -> toSubscriberAndChannels(dispatcherKey, projectKey, notificationChannel))
        .collect(Collectors.toSet());
  
      if (subscriberAndChannels.isEmpty()) {
        return ImmutableMultimap.of();
      }
  
      ImmutableSetMultimap.Builder<String, NotificationChannel> builder = ImmutableSetMultimap.builder();
      try (DbSession dbSession = dbClient.openSession(false)) {
        Set<String> authorizedLogins = keepAuthorizedLogins(dbSession, projectKey, subscriberAndChannels, subscriberPermissionsOnProject);
        subscriberAndChannels.stream()
          .filter(subscriberAndChannel -> authorizedLogins.contains(subscriberAndChannel.getSubscriber().getLogin()))
          .forEach(subscriberAndChannel -> builder.put(subscriberAndChannel.getSubscriber().getLogin(), subscriberAndChannel.getChannel()));
      }
      return builder.build();
    }