aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurelien Poscia <aurelien.poscia@sonarsource.com>2023-08-14 10:31:49 +0200
committersonartech <sonartech@sonarsource.com>2023-08-22 20:03:04 +0000
commite6f88d27726c28681ab1057cfa5ce225c43b0b57 (patch)
treeb0cf869afcea69c380016cba12188ac932dc86a5
parentd6133f5b991c6ee072b7c4acdbb1f13fb8a0dd17 (diff)
downloadsonarqube-e6f88d27726c28681ab1057cfa5ce225c43b0b57.tar.gz
sonarqube-e6f88d27726c28681ab1057cfa5ce225c43b0b57.zip
SONAR-19783 clean-up github_orgs_group upon group deletion
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupService.java5
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupServiceTest.java4
2 files changed, 9 insertions, 0 deletions
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupService.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupService.java
index 37fef76d14f..95cbbd3750c 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupService.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/GroupService.java
@@ -60,6 +60,8 @@ public class GroupService {
removeGroupFromQualityGateEdit(dbSession, group);
removeGroupScimLink(dbSession, group);
removeExternalGroupMapping(dbSession, group);
+ removeGithubOrganizationGroupDao(dbSession, group);
+
removeGroup(dbSession, group);
}
@@ -162,6 +164,9 @@ public class GroupService {
private void removeExternalGroupMapping(DbSession dbSession, GroupDto group) {
dbClient.externalGroupDao().deleteByGroupUuid(dbSession, group.getUuid());
}
+ private void removeGithubOrganizationGroupDao(DbSession dbSession, GroupDto group) {
+ dbClient.githubOrganizationGroupDao().deleteByGroupUuid(dbSession, group.getUuid());
+ }
private void removeGroup(DbSession dbSession, GroupDto group) {
dbClient.groupDao().deleteByUuid(dbSession, group.getUuid(), group.getName());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupServiceTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupServiceTest.java
index b9513fe3dbf..998a5095015 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupServiceTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/GroupServiceTest.java
@@ -39,6 +39,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.permission.AuthorizationDao;
import org.sonar.db.permission.GlobalPermission;
import org.sonar.db.permission.template.PermissionTemplateDao;
+import org.sonar.db.provisioning.GithubOrganizationGroupDao;
import org.sonar.db.qualitygate.QualityGateGroupPermissionsDao;
import org.sonar.db.qualityprofile.QProfileEditGroupsDao;
import org.sonar.db.scim.ScimGroupDao;
@@ -95,6 +96,7 @@ public class GroupServiceTest {
when(dbClient.scimGroupDao()).thenReturn(mock(ScimGroupDao.class));
when(dbClient.externalGroupDao()).thenReturn(mock(ExternalGroupDao.class));
when(dbClient.groupDao()).thenReturn(mock(GroupDao.class));
+ when(dbClient.githubOrganizationGroupDao()).thenReturn(mock(GithubOrganizationGroupDao.class));
}
@Test
@@ -320,6 +322,7 @@ public class GroupServiceTest {
verify(dbClient.qualityGateGroupPermissionsDao(), never()).deleteByGroup(dbSession, groupDto);
verify(dbClient.scimGroupDao(), never()).deleteByGroupUuid(dbSession, groupDto.getUuid());
verify(dbClient.groupDao(), never()).deleteByUuid(dbSession, groupDto.getUuid(), groupDto.getName());
+ verify(dbClient.githubOrganizationGroupDao(), never()).deleteByGroupUuid(dbSession, groupDto.getUuid());
}
private void verifyGroupDelete(DbSession dbSession, GroupDto groupDto) {
@@ -331,5 +334,6 @@ public class GroupServiceTest {
verify(dbClient.scimGroupDao()).deleteByGroupUuid(dbSession, groupDto.getUuid());
verify(dbClient.externalGroupDao()).deleteByGroupUuid(dbSession, groupDto.getUuid());
verify(dbClient.groupDao()).deleteByUuid(dbSession, groupDto.getUuid(), groupDto.getName());
+ verify(dbClient.githubOrganizationGroupDao()).deleteByGroupUuid(dbSession, groupDto.getUuid());
}
}