From: Wojtek Wajerowicz <115081248+wojciech-wajerowicz-sonarsource@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:00:03 +0000 (+0100) Subject: SONAR-18397 Add SCIM protocol DELETE /Users endpoint. X-Git-Tag: 10.0.0.68432~240 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a582f329240c1a204abf3fb611a3194160b7d6ad;p=sonarqube.git SONAR-18397 Add SCIM protocol DELETE /Users endpoint. --- diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserDao.java index 44fdeb33bc9..9476e7d842d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserDao.java @@ -66,4 +66,8 @@ public class ScimUserDao implements Dao { public void deleteByUserUuid(DbSession dbSession, String userUuid) { mapper(dbSession).deleteByUserUuid(userUuid); } + + public void deleteByScimUuid(DbSession dbSession, String scimUuid) { + mapper(dbSession).deleteByScimUuid(scimUuid); + } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserMapper.java index 5958f3967a0..c850448f0f3 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/scim/ScimUserMapper.java @@ -41,4 +41,6 @@ public interface ScimUserMapper { int countScimUsers(@Param("query") ScimUserQuery scimUserQuery); void deleteByUserUuid(@Param("userUuid") String userUuid); + + void deleteByScimUuid(@Param("scimUuid") String scimUuid); } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/scim/ScimUserMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/scim/ScimUserMapper.xml index 2c99a131fc0..734cbb15a26 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/scim/ScimUserMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/scim/ScimUserMapper.xml @@ -64,5 +64,9 @@ delete from scim_users where user_uuid = #{userUuid, jdbcType=VARCHAR} + + delete from scim_users where scim_uuid = #{scimUuid, jdbcType=VARCHAR} + + diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/scim/ScimUserDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/scim/ScimUserDaoTest.java index 26fc9ae6e45..ba7983ef674 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/scim/ScimUserDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/scim/ScimUserDaoTest.java @@ -201,7 +201,7 @@ public class ScimUserDaoTest { } @Test - public void deleteFromUserUuid_shouldDeleteScimUser() { + public void deleteByUserUuid_shouldDeleteScimUser() { ScimUserTestData scimUserTestData = insertScimUser("scimUser"); scimUserDao.deleteByUserUuid(dbSession, scimUserTestData.getUserUuid()); @@ -209,6 +209,21 @@ public class ScimUserDaoTest { assertThat(scimUserDao.findAll(dbSession)).isEmpty(); } + @Test + public void deleteByScimUuid_shouldDeleteScimUser() { + ScimUserTestData scimUserTestData = insertScimUser("scimUser"); + ScimUserTestData scimUserTestData2 = insertScimUser("scimUser2"); + + scimUserDao.deleteByScimUuid(dbSession, scimUserTestData.getScimUserUuid()); + + List remainingUsers = scimUserDao.findAll(dbSession); + assertThat(remainingUsers).hasSize(1); + + ScimUserDto remainingUser = remainingUsers.get(0); + assertThat(remainingUser.getScimUserUuid()).isEqualTo(scimUserTestData2.scimUserUuid); + assertThat(remainingUser.getUserUuid()).isEqualTo(scimUserTestData2.userUuid); + } + @Test public void deleteFromUserUuid_shouldNotFail_whenNoUser() { assertThatCode(() -> scimUserDao.deleteByUserUuid(dbSession, randomAlphanumeric(6))).doesNotThrowAnyException();