diff options
author | Michal Duda <michal.duda@sonarsource.com> | 2020-12-14 21:18:50 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2020-12-22 20:09:36 +0000 |
commit | a8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e (patch) | |
tree | 66ff12305b5060bc93b844dae11649540de14b3f /server/sonar-db-dao | |
parent | 31c59b718a3c074deb51bfadf8152fb6317a826a (diff) | |
download | sonarqube-a8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e.tar.gz sonarqube-a8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e.zip |
SONAR-13999 remove organizations from user WS
Diffstat (limited to 'server/sonar-db-dao')
4 files changed, 51 insertions, 4 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupDao.java index 73247cd9155..9add82f0b9d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupDao.java @@ -19,6 +19,7 @@ */ package org.sonar.db.user; +import java.util.Set; import org.sonar.db.Dao; import org.sonar.db.DbSession; @@ -29,6 +30,10 @@ public class UserGroupDao implements Dao { return dto; } + public Set<String> selectUserUuidsInGroup(DbSession session, String groupUuid) { + return mapper(session).selectUserUuidsInGroup(groupUuid); + } + public void delete(DbSession session, String groupUuid, String userUuid) { mapper(session).delete(groupUuid, userUuid); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupMapper.java index 9e67fd7c6aa..58a7848f6f8 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupMapper.java @@ -19,12 +19,15 @@ */ package org.sonar.db.user; +import java.util.Set; import org.apache.ibatis.annotations.Param; public interface UserGroupMapper { void insert(UserGroupDto dto); + Set<String> selectUserUuidsInGroup(@Param("groupUuid") String groupUuid); + void delete(@Param("groupUuid") String groupUuid, @Param("userUuid") String userUuid); void deleteByGroupUuid(@Param("groupUuid") String groupUuid); diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserGroupMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserGroupMapper.xml index 9e98f945e5f..8151f29ea83 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserGroupMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserGroupMapper.xml @@ -13,6 +13,12 @@ ) </insert> + <select id="selectUserUuidsInGroup" resultType="String"> + select gu.user_uuid + from groups_users gu + where gu.group_uuid=#{groupUuid,jdbcType=VARCHAR} + </select> + <delete id="delete" parameterType="map"> delete from groups_users where user_uuid = #{userUuid,jdbcType=VARCHAR} and diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserGroupDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserGroupDaoTest.java index af3333241a1..2fe88a7dff0 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserGroupDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserGroupDaoTest.java @@ -19,10 +19,10 @@ */ package org.sonar.db.user; +import java.util.Set; import org.junit.Rule; import org.junit.Test; import org.sonar.api.utils.System2; -import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.DbTester; @@ -32,10 +32,9 @@ public class UserGroupDaoTest { @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); - private DbClient dbClient = dbTester.getDbClient(); - private DbSession dbSession = dbTester.getSession(); - private UserGroupDao underTest = dbTester.getDbClient().userGroupDao(); + private final DbSession dbSession = dbTester.getSession(); + private final UserGroupDao underTest = dbTester.getDbClient().userGroupDao(); @Test public void insert() { @@ -50,6 +49,40 @@ public class UserGroupDaoTest { } @Test + public void select_user_uuids_in_group() { + UserDto user1 = dbTester.users().insertUser(); + UserDto user2 = dbTester.users().insertUser(); + UserDto user3 = dbTester.users().insertUser(); + GroupDto group1 = dbTester.users().insertGroup(); + GroupDto group2 = dbTester.users().insertGroup(); + UserGroupDto userGroupDto1 = new UserGroupDto().setUserUuid(user1.getUuid()).setGroupUuid(group1.getUuid()); + UserGroupDto userGroupDto2 = new UserGroupDto().setUserUuid(user2.getUuid()).setGroupUuid(group2.getUuid()); + UserGroupDto userGroupDto3 = new UserGroupDto().setUserUuid(user3.getUuid()).setGroupUuid(group2.getUuid()); + underTest.insert(dbSession, userGroupDto1); + underTest.insert(dbSession, userGroupDto2); + underTest.insert(dbSession, userGroupDto3); + dbTester.getSession().commit(); + + Set<String> userUuids = underTest.selectUserUuidsInGroup(dbTester.getSession(), group2.getUuid()); + + assertThat(userUuids).containsExactlyInAnyOrder(user2.getUuid(), user3.getUuid()); + } + + @Test + public void select_user_uuids_in_group_returns_empty_set_when_nothing_found() { + UserDto user1 = dbTester.users().insertUser(); + GroupDto group1 = dbTester.users().insertGroup(); + GroupDto group2 = dbTester.users().insertGroup(); + UserGroupDto userGroupDto1 = new UserGroupDto().setUserUuid(user1.getUuid()).setGroupUuid(group1.getUuid()); + underTest.insert(dbSession, userGroupDto1); + dbTester.getSession().commit(); + + Set<String> userUuids = underTest.selectUserUuidsInGroup(dbTester.getSession(), group2.getUuid()); + + assertThat(userUuids).isEmpty(); + } + + @Test public void delete_members_by_group_uuid() { UserDto user1 = dbTester.users().insertUser(); UserDto user2 = dbTester.users().insertUser(); |