diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-09-20 19:00:09 +0200 |
---|---|---|
committer | Eric Hartmann <hartmann.eric@gmail.Com> | 2017-10-02 13:03:35 +0200 |
commit | 71030c3e284c9ae264cd5e3b697c2e29060e9731 (patch) | |
tree | 8997a3d33bc81e351492ef9cdf8e0625fd06aea4 /server | |
parent | 06cc356c2dfec27fecb98fd4776eb4922da4faeb (diff) | |
download | sonarqube-71030c3e284c9ae264cd5e3b697c2e29060e9731.tar.gz sonarqube-71030c3e284c9ae264cd5e3b697c2e29060e9731.zip |
SONAR-7024 global report failure notif only on administrated projects
Diffstat (limited to 'server')
2 files changed, 7 insertions, 3 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcher.java b/server/sonar-server/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcher.java index 2481d9937ae..ff3ad8346c2 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcher.java +++ b/server/sonar-server/src/main/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcher.java @@ -24,13 +24,16 @@ import java.util.Collection; import java.util.Map; import org.sonar.api.notifications.Notification; import org.sonar.api.notifications.NotificationChannel; +import org.sonar.api.web.UserRole; import org.sonar.server.notification.NotificationDispatcher; import org.sonar.server.notification.NotificationDispatcherMetadata; import org.sonar.server.notification.NotificationManager; +import org.sonar.server.notification.NotificationManager.SubscriberPermissionsOnProject; public class ReportAnalysisFailureNotificationDispatcher extends NotificationDispatcher { public static final String KEY = "CeReportTaskFailure"; + private static final SubscriberPermissionsOnProject REQUIRED_SUBSCRIBER_PERMISSIONS = new SubscriberPermissionsOnProject(UserRole.ADMIN, UserRole.USER); private final NotificationManager manager; @@ -54,7 +57,7 @@ public class ReportAnalysisFailureNotificationDispatcher extends NotificationDis public void dispatch(Notification notification, Context context) { String projectUuid = notification.getFieldValue("project.uuid"); Multimap<String, NotificationChannel> subscribedRecipients = manager.findSubscribedRecipientsForDispatcher( - this, projectUuid, NotificationManager.SubscriberPermissionsOnProject.ALL_MUST_HAVE_ROLE_USER); + this, projectUuid, REQUIRED_SUBSCRIBER_PERMISSIONS); for (Map.Entry<String, Collection<NotificationChannel>> channelsByRecipients : subscribedRecipients.asMap().entrySet()) { String userLogin = channelsByRecipients.getKey(); diff --git a/server/sonar-server/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcherTest.java b/server/sonar-server/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcherTest.java index 92c233a8fc8..82cad44378c 100644 --- a/server/sonar-server/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcherTest.java +++ b/server/sonar-server/src/test/java/org/sonar/ce/notification/ReportAnalysisFailureNotificationDispatcherTest.java @@ -27,6 +27,7 @@ import org.sonar.api.web.UserRole; import org.sonar.server.notification.NotificationDispatcher; import org.sonar.server.notification.NotificationDispatcherMetadata; import org.sonar.server.notification.NotificationManager; +import org.sonar.server.notification.NotificationManager.SubscriberPermissionsOnProject; import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.assertj.core.api.Assertions.assertThat; @@ -89,7 +90,7 @@ public class ReportAnalysisFailureNotificationDispatcherTest { multimap.put(login1, channel2); multimap.put(login2, channel2); multimap.put(login2, channel3); - when(notificationManager.findSubscribedRecipientsForDispatcher(underTest, projectUuid, new NotificationManager.SubscriberPermissionsOnProject(UserRole.USER))) + when(notificationManager.findSubscribedRecipientsForDispatcher(underTest, projectUuid, new SubscriberPermissionsOnProject(UserRole.ADMIN, UserRole.USER))) .thenReturn(multimap); underTest.performDispatch(notificationMock, contextMock); @@ -107,7 +108,7 @@ public class ReportAnalysisFailureNotificationDispatcherTest { String projectUuid = randomAlphanumeric(9); when(notificationMock.getFieldValue("project.uuid")).thenReturn(projectUuid); HashMultimap<String, NotificationChannel> multimap = HashMultimap.create(); - when(notificationManager.findSubscribedRecipientsForDispatcher(underTest, projectUuid, new NotificationManager.SubscriberPermissionsOnProject(UserRole.USER))) + when(notificationManager.findSubscribedRecipientsForDispatcher(underTest, projectUuid, new SubscriberPermissionsOnProject(UserRole.ADMIN, UserRole.USER))) .thenReturn(multimap); underTest.performDispatch(notificationMock, contextMock); |