diff options
author | Aurelien Poscia <aurelien.poscia@sonarsource.com> | 2023-08-14 10:31:49 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-08-22 20:03:04 +0000 |
commit | e6f88d27726c28681ab1057cfa5ce225c43b0b57 (patch) | |
tree | b0cf869afcea69c380016cba12188ac932dc86a5 | |
parent | d6133f5b991c6ee072b7c4acdbb1f13fb8a0dd17 (diff) | |
download | sonarqube-e6f88d27726c28681ab1057cfa5ce225c43b0b57.tar.gz sonarqube-e6f88d27726c28681ab1057cfa5ce225c43b0b57.zip |
SONAR-19783 clean-up github_orgs_group upon group deletion
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()); } } |