aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorPierre <pierre.guillot@sonarsource.com>2021-11-12 14:30:05 +0100
committersonartech <sonartech@sonarsource.com>2021-11-15 20:04:34 +0000
commitd6f8681d2d6faeac76be9e6afba3f67c9dc89f12 (patch)
treebb7e2fe16a50eaca86066987fb3d92c40e966b55 /server
parentbe0ec91f613a1028a347c83f624514e0f55b3a1b (diff)
downloadsonarqube-d6f8681d2d6faeac76be9e6afba3f67c9dc89f12.tar.gz
sonarqube-d6f8681d2d6faeac76be9e6afba3f67c9dc89f12.zip
SONAR-13426 purge project_badge_token when a project is deleted
Diffstat (limited to 'server')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java8
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java1
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml4
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java13
5 files changed, 28 insertions, 0 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
index 402bf9ef5b8..c16a1741dd9 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeCommands.java
@@ -424,6 +424,13 @@ class PurgeCommands {
profiler.stop();
}
+ public void deleteProjectBadgeToken(String rootUuid) {
+ profiler.start("deleteProjectBadgeToken (project_badge_token)");
+ purgeMapper.deleteProjectBadgeTokenByProjectUuid(rootUuid);
+ session.commit();
+ profiler.stop();
+ }
+
void deleteBranch(String rootUuid) {
profiler.start("deleteBranch (project_branches)");
purgeMapper.deleteApplicationBranchProjectBranchesByProjectBranchUuid(rootUuid);
@@ -464,4 +471,5 @@ class PurgeCommands {
session.commit();
profiler.stop();
}
+
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
index 7e0d1efd9ac..f86fa31d477 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
@@ -235,6 +235,7 @@ public class PurgeDao implements Dao {
commands.deleteProjectInPortfolios(rootUuid);
commands.deleteComponents(rootUuid);
commands.deleteComponentsByMainBranchProjectUuid(rootUuid);
+ commands.deleteProjectBadgeToken(rootUuid);
commands.deleteProject(rootUuid);
commands.deleteUserDismissedMessages(rootUuid);
commands.deleteOutdatedProperties(rootUuid);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
index 348d043c7d5..f88c7e6dcda 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeMapper.java
@@ -163,6 +163,8 @@ public interface PurgeMapper {
void deleteProjectAlmSettingsByProjectUuid(@Param("projectUuid") String projectUuid);
+ void deleteProjectBadgeTokenByProjectUuid(@Param("projectUuid") String rootUuid);
+
void deleteUserDismissedMessagesByProjectUuid(@Param("projectUuid") String projectUuid);
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
index 604300faae0..d84ed709dd7 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/purge/PurgeMapper.xml
@@ -538,6 +538,10 @@
delete from project_alm_settings where project_uuid=#{projectUuid,jdbcType=VARCHAR}
</delete>
+ <delete id="deleteProjectBadgeTokenByProjectUuid">
+ delete from project_badge_token where project_uuid=#{projectUuid,jdbcType=VARCHAR}
+ </delete>
+
<delete id="deleteBranchByUuid">
delete from project_branches where uuid=#{uuid,jdbcType=VARCHAR}
</delete>
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java
index 5809ea842ea..580df5cd4a3 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/purge/PurgeDaoTest.java
@@ -1372,6 +1372,19 @@ public class PurgeDaoTest {
}
@Test
+ public void deleteProject_deletes_project_badge_tokens() {
+ ProjectDto project = db.components().insertPublicProjectDto();
+ ProjectDto otherProject = db.components().insertPublicProjectDto();
+ dbClient.projectBadgeTokenDao().insert(dbSession, "token_to_delete", project, "user-uuid", "user-login");
+ dbClient.projectBadgeTokenDao().insert(dbSession, "token_to_not_delete", otherProject, "user-uuid", "user-login");
+
+ underTest.deleteProject(dbSession, project.getUuid(), project.getQualifier(), project.getName(), project.getKey());
+
+ assertThat(dbClient.projectBadgeTokenDao().selectTokenByProject(dbSession, project)).isNull();
+ assertThat(dbClient.projectBadgeTokenDao().selectTokenByProject(dbSession, otherProject)).isNotNull();
+ }
+
+ @Test
public void deleteProject_deletes_portfolio_projects() {
ComponentDto portfolio1 = db.components().insertPrivatePortfolio();
ComponentDto portfolio2 = db.components().insertPrivatePortfolio();