aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2016-10-13 00:20:20 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2016-10-13 12:18:42 +0200
commitc605a20cfaa911ad51850ac6b4dab5aed8febf5f (patch)
treeca7d8eda849a024481a3e0bbed4fde1eefa286d5 /sonar-db/src
parent0d6f98364a4e6a0c0055e4f0cd6132d1236329ae (diff)
downloadsonarqube-c605a20cfaa911ad51850ac6b4dab5aed8febf5f.tar.gz
sonarqube-c605a20cfaa911ad51850ac6b4dab5aed8febf5f.zip
SONAR-8134 remove RoleDao#deleteGroupRolesByResourceId()
Replaced by GroupPermissionDao#deleteByRootComponentId()
Diffstat (limited to 'sonar-db/src')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java8
-rw-r--r--sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java2
-rw-r--r--sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java2
-rw-r--r--sonar-db/src/main/java/org/sonar/db/user/RoleDao.java4
-rw-r--r--sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java2
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml5
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml4
-rw-r--r--sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java18
-rw-r--r--sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java15
-rw-r--r--sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java11
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions-result.xml18
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions.xml26
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId-result.xml31
-rw-r--r--sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId.xml43
14 files changed, 33 insertions, 156 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java b/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
index 653dbf2c111..37e375b4b46 100644
--- a/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
+++ b/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
@@ -113,8 +113,14 @@ public class GroupPermissionDao implements Dao {
mapper(dbSession).insert(dto);
}
+ /**
+ * Delete all the permissions associated to a root component (project)
+ */
+ public void deleteByRootComponentId(DbSession dbSession, long rootComponentId) {
+ mapper(dbSession).deleteByRootComponentId(rootComponentId);
+ }
+
private static GroupPermissionMapper mapper(DbSession session) {
return session.getMapper(GroupPermissionMapper.class);
}
-
}
diff --git a/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java b/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
index 331aa409787..ca005bcc617 100644
--- a/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
+++ b/sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
@@ -59,4 +59,6 @@ public interface GroupPermissionMapper {
List<String> selectAnyonePermissions(@Nullable @Param("projectId") Long projectId);
void insert(GroupPermissionDto dto);
+
+ void deleteByRootComponentId(@Param("rootComponentId") long componentId);
}
diff --git a/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java b/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
index 56700dac063..53b33564296 100644
--- a/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
+++ b/sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
@@ -81,7 +81,7 @@ public class PermissionRepository {
private void applyPermissionTemplate(DbSession session, String templateUuid, ComponentDto project, @Nullable Long currentUserId) {
PermissionTemplate template = dbClient.permissionTemplateDao().selectPermissionTemplateWithPermissions(session, templateUuid);
updateProjectAuthorizationDate(session, project.getId());
- dbClient.roleDao().deleteGroupRolesByResourceId(session, project.getId());
+ dbClient.groupPermissionDao().deleteByRootComponentId(session, project.getId());
dbClient.userPermissionDao().delete(session, null, project.uuid(), null);
List<PermissionTemplateUserDto> usersPermissions = template.getUserPermissions();
diff --git a/sonar-db/src/main/java/org/sonar/db/user/RoleDao.java b/sonar-db/src/main/java/org/sonar/db/user/RoleDao.java
index 309ec6371d5..04d8e82bde2 100644
--- a/sonar-db/src/main/java/org/sonar/db/user/RoleDao.java
+++ b/sonar-db/src/main/java/org/sonar/db/user/RoleDao.java
@@ -53,10 +53,6 @@ public class RoleDao implements Dao {
mapper(session).deleteGroupRole(groupRole);
}
- public void deleteGroupRolesByResourceId(DbSession session, long projectId) {
- mapper(session).deleteGroupRolesByResourceId(projectId);
- }
-
private static int countResourceGroupRoles(DbSession session, Long resourceId) {
return mapper(session).countResourceGroupRoles(resourceId);
}
diff --git a/sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java b/sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java
index 68342b045f4..783514c5faf 100644
--- a/sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java
+++ b/sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java
@@ -38,8 +38,6 @@ public interface RoleMapper {
void deleteGroupRole(GroupPermissionDto dto);
- void deleteGroupRolesByResourceId(long projectId);
-
int countResourceGroupRoles(Long resourceId);
int countResourceUserRoles(long resourceId);
diff --git a/sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml b/sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
index 0cfd9472ff3..065111f7bfe 100644
--- a/sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
+++ b/sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
@@ -163,4 +163,9 @@
#{role,jdbcType=VARCHAR}
)
</insert>
+
+ <delete id="deleteByRootComponentId" parameterType="long">
+ delete from group_roles
+ where resource_id=#{rootComponentId,jdbcType=BIGINT}
+ </delete>
</mapper>
diff --git a/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml b/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
index 9cd60e47a56..27a020c8dce 100644
--- a/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
+++ b/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
@@ -72,10 +72,6 @@
</choose>
</delete>
- <delete id="deleteGroupRolesByResourceId" parameterType="long">
- delete from group_roles where resource_id=#{id}
- </delete>
-
<select id="countResourceUserRoles" parameterType="long" resultType="int">
SELECT count(1)
FROM user_roles WHERE resource_id=#{id}
diff --git a/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java b/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
index a74c5ab974f..b1b4cc869f7 100644
--- a/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
+++ b/sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
@@ -315,4 +315,22 @@ public class GroupPermissionDaoTest {
assertThat(underTest.selectAnyonePermissions(dbSession, project.getId())).containsOnly("perm4");
assertThat(underTest.selectAnyonePermissions(dbSession, UNKNOWN_PROJECT_ID)).isEmpty();
}
+
+ @Test
+ public void deleteByRootComponentId() {
+ GroupDto group1 = db.users().insertGroup(newGroupDto());
+ GroupDto group2 = db.users().insertGroup(newGroupDto());
+ ComponentDto project1 = db.components().insertProject();
+ ComponentDto project2 = db.components().insertProject();
+ db.users().insertPermissionOnGroup(group1, "perm1");
+ db.users().insertProjectPermissionOnGroup(group1, "perm2", project1);
+ db.users().insertProjectPermissionOnAnyone("perm3", project1);
+ db.users().insertProjectPermissionOnGroup(group2, "perm4", project2);
+
+ underTest.deleteByRootComponentId(dbSession, project1.getId());
+ dbSession.commit();
+
+ assertThat(db.countSql("select count(id) from group_roles where resource_id=" + project1.getId())).isEqualTo(0);
+ assertThat(db.countRowsOfTable("group_roles")).isEqualTo(2);
+ }
}
diff --git a/sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java b/sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java
index bba3a588416..e092e46465a 100644
--- a/sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java
+++ b/sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java
@@ -159,21 +159,6 @@ public class RoleDaoTest {
}
@Test
- public void should_remove_group_permissions_on_project() {
- db.prepareDbUnit(getClass(), "should_remove_all_permissions.xml");
-
- assertThat(underTest.selectGroupPermissions(db.getSession(), "devs", 123L)).hasSize(1);
- assertThat(underTest.selectGroupPermissions(db.getSession(), "other", 123L)).isEmpty();
-
- underTest.deleteGroupRolesByResourceId(db.getSession(), 123L);
- db.getSession().commit();
-
- db.assertDbUnitTable(getClass(), "should_remove_all_permissions-result.xml", "group_roles", "group_id", "resource_id", "role");
-
- assertThat(underTest.selectGroupPermissions(db.getSession(), "devs", 123L)).isEmpty();
- }
-
- @Test
public void countUserPermissions() {
db.users().insertProjectPermissionOnUser(user1, GlobalPermissions.SYSTEM_ADMIN, project1);
db.users().insertPermissionOnUser(user1, GlobalPermissions.SYSTEM_ADMIN);
diff --git a/sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java b/sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java
index 94f404282e1..50d7555047c 100644
--- a/sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java
+++ b/sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java
@@ -40,15 +40,4 @@ public class RoleMapperTest {
assertThat(mapper.countResourceUserRoles(123L)).isEqualTo(1);
}
- @Test
- public void delete_roles_by_resource_id() {
- dbTester.prepareDbUnit(getClass(), "deleteRolesByResourceId.xml");
-
- RoleMapper mapper = dbTester.getSession().getMapper(RoleMapper.class);
- mapper.deleteGroupRolesByResourceId(123L);
- dbTester.getSession().commit();
-
- dbTester.assertDbUnit(getClass(), "deleteRolesByResourceId-result.xml", "group_roles");
- }
-
}
diff --git a/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions-result.xml b/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions-result.xml
deleted file mode 100644
index 77964cdc299..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions-result.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<dataset>
-
- <users id="200"
- login="dave.loper"
- name="Dave Loper"
- email="dave.loper@company.net"
- active="[true]"
- is_root="[false]"/>
-
- <groups id="100"
- name="devs"
- organization_uuid="org1"/>
-
- <user_roles/>
-
- <group_roles/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions.xml b/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions.xml
deleted file mode 100644
index 3c91825413a..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/user/RoleDaoTest/should_remove_all_permissions.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<dataset>
-
- <users id="200"
- login="dave.loper"
- name="Dave Loper"
- email="dave.loper@company.net"
- active="[true]"
- is_root="[false]"/>
-
- <groups id="100"
- name="devs"
- organization_uuid="org1"/>
-
- <user_roles id="1"
- user_id="200"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
-
- <group_roles id="1"
- group_id="100"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId-result.xml b/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId-result.xml
deleted file mode 100644
index 7575e3fae0a..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId-result.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<dataset>
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <!--<group_roles id="1" group_id="100" resource_id="123" role="admin"/>-->
- <!--<group_roles id="2" group_id="[null]" resource_id="123" role="user"/>-->
- <!--<user_roles id="1" user_id="200" resource_id="123" role="codeviewer"/>-->
-
- <!-- other resource -->
- <group_roles id="3"
- group_id="101"
- resource_id="999"
- role="codeviewer"
- organization_uuid="org1"/>
- <user_roles id="2"
- user_id="200"
- resource_id="999"
- role="codeviewer"
- organization_uuid="org1"/>
-
-</dataset>
diff --git a/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId.xml b/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId.xml
deleted file mode 100644
index c0e35675070..00000000000
--- a/sonar-db/src/test/resources/org/sonar/db/user/RoleMapperTest/deleteRolesByResourceId.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<dataset>
- <groups id="100"
- name="sonar-administrators"
- organization_uuid="org1"/>
- <groups id="101"
- name="sonar-users"
- organization_uuid="org1"/>
- <users id="200"
- login="marius"
- name="Marius"
- email="[null]"
- active="[true]"
- is_root="[false]"/>
-
- <group_roles id="1"
- group_id="100"
- resource_id="123"
- role="admin"
- organization_uuid="org1"/>
- <group_roles id="2"
- group_id="[null]"
- resource_id="123"
- role="user"
- organization_uuid="org1"/>
- <user_roles id="1"
- user_id="200"
- resource_id="123"
- role="codeviewer"
- organization_uuid="org1"/>
-
- <!-- other resource -->
- <group_roles id="3"
- group_id="101"
- resource_id="999"
- role="codeviewer"
- organization_uuid="org1"/>
- <user_roles id="2"
- user_id="200"
- resource_id="999"
- role="codeviewer"
- organization_uuid="org1"/>
-
-</dataset>