aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre <pierre.guillot@sonarsource.com>2021-06-29 13:40:49 +0200
committersonartech <sonartech@sonarsource.com>2021-06-29 20:03:18 +0000
commit4bd2d9de2cdd806ed2cb3685f8367285ebc30e29 (patch)
treeb1a147ba5a96f33d2fb49007c8a37d445b3f6630
parent7a28ace3fb4822542c21c33565ae0cb27ba17110 (diff)
downloadsonarqube-4bd2d9de2cdd806ed2cb3685f8367285ebc30e29.tar.gz
sonarqube-4bd2d9de2cdd806ed2cb3685f8367285ebc30e29.zip
SONAR-15109 exclude project-specific webhooks from global webhook list
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookDao.java4
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/webhook/WebhookMapper.xml6
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java20
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java2
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/webhook/ws/ListActionTest.java5
6 files changed, 5 insertions, 34 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookDao.java
index 8c892304793..4baa61f2ce9 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookDao.java
@@ -34,10 +34,6 @@ public class WebhookDao implements Dao {
this.system2 = system2;
}
- public List<WebhookDto> selectAll(DbSession dbSession) {
- return mapper(dbSession).selectAllOrderedByName();
- }
-
public List<WebhookDto> selectGlobalWebhooks(DbSession dbSession) {
return mapper(dbSession).selectGlobalWebhooksOrderedByName();
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookMapper.java
index d1d48898429..dbf24214302 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/webhook/WebhookMapper.java
@@ -28,8 +28,6 @@ public interface WebhookMapper {
@CheckForNull
WebhookDto selectByUuid(@Param("webhookUuid") String webhookUuid);
- List<WebhookDto> selectAllOrderedByName();
-
List<WebhookDto> selectGlobalWebhooksOrderedByName();
List<WebhookDto> selectForProjectUuidOrderedByName(@Param("projectUuid") String projectUuid);
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/webhook/WebhookMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/webhook/WebhookMapper.xml
index 7459d2b11e9..8978cdfb74f 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/webhook/WebhookMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/webhook/WebhookMapper.xml
@@ -20,12 +20,6 @@
where uuid = #{webhookUuid,jdbcType=VARCHAR}
</select>
- <select id="selectAllOrderedByName" parameterType="String" resultType="org.sonar.db.webhook.WebhookDto">
- select <include refid="sqlColumns" />
- from webhooks
- order by name asc
- </select>
-
<select id="selectGlobalWebhooksOrderedByName" parameterType="String" resultType="org.sonar.db.webhook.WebhookDto">
select <include refid="sqlColumns" />
from webhooks
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
index c9484b6a205..54161f2a626 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
@@ -51,26 +51,6 @@ public class WebhookDaoTest {
}
@Test
- public void select_all_webhooks() {
- ProjectDto projectDto = componentDbTester.insertPrivateProjectDto();
- webhookDbTester.insertGlobalWebhook();
- webhookDbTester.insertGlobalWebhook();
- webhookDbTester.insertWebhook(projectDto);
- webhookDbTester.insertWebhook(projectDto);
-
- List<WebhookDto> results = underTest.selectAll(dbSession);
-
- assertThat(results).hasSize(4);
- }
-
- @Test
- public void select_all_webhooks_returns_empty_list_if_there_are_no_webhooks() {
- List<WebhookDto> results = underTest.selectAll(dbSession);
-
- assertThat(results).isEmpty();
- }
-
- @Test
public void select_global_webhooks() {
ProjectDto projectDto = componentDbTester.insertPrivateProjectDto();
webhookDbTester.insertGlobalWebhook();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java
index 6fd2dd5f17b..b0c4e88d982 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/webhook/ws/ListAction.java
@@ -101,7 +101,7 @@ public class ListAction implements WebhooksWsAction {
return dbClient.webhookDao().selectByProject(dbSession, projectDto);
} else {
webhookSupport.checkPermission();
- return dbClient.webhookDao().selectAll(dbSession);
+ return dbClient.webhookDao().selectGlobalWebhooks(dbSession);
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/webhook/ws/ListActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/webhook/ws/ListActionTest.java
index 0ca1bd2984c..1c3b06850c4 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/webhook/ws/ListActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/webhook/ws/ListActionTest.java
@@ -168,6 +168,9 @@ public class ListActionTest {
public void list_global_webhooks() {
WebhookDto dto1 = webhookDbTester.insertGlobalWebhook();
WebhookDto dto2 = webhookDbTester.insertGlobalWebhook();
+ // insert a project-specific webhook, that should not be returned when listing global webhooks
+ webhookDbTester.insertWebhook(componentDbTester.insertPrivateProjectDto());
+
userSession.logIn().addPermission(ADMINISTER);
ListResponse response = wsActionTester.newRequest()
@@ -175,7 +178,7 @@ public class ListActionTest {
assertThat(response.getWebhooksList())
.extracting(Webhooks.ListResponseElement::getName, Webhooks.ListResponseElement::getUrl)
- .contains(tuple(dto1.getName(), dto1.getUrl()),
+ .containsExactlyInAnyOrder(tuple(dto1.getName(), dto1.getUrl()),
tuple(dto2.getName(), dto2.getUrl()));
}