aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorMichal Duda <michal.duda@sonarsource.com>2020-12-14 21:18:50 +0100
committersonartech <sonartech@sonarsource.com>2020-12-22 20:09:36 +0000
commita8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e (patch)
tree66ff12305b5060bc93b844dae11649540de14b3f /server/sonar-db-dao
parent31c59b718a3c074deb51bfadf8152fb6317a826a (diff)
downloadsonarqube-a8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e.tar.gz
sonarqube-a8cd264afd2a7532ee0f3d9809db2d5cb8c32e6e.zip
SONAR-13999 remove organizations from user WS
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupDao.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/user/UserGroupMapper.java3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/user/UserGroupMapper.xml6
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/user/UserGroupDaoTest.java41
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();