diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2016-10-13 00:20:20 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2016-10-13 12:18:42 +0200 |
commit | c605a20cfaa911ad51850ac6b4dab5aed8febf5f (patch) | |
tree | ca7d8eda849a024481a3e0bbed4fde1eefa286d5 /sonar-db/src | |
parent | 0d6f98364a4e6a0c0055e4f0cd6132d1236329ae (diff) | |
download | sonarqube-c605a20cfaa911ad51850ac6b4dab5aed8febf5f.tar.gz sonarqube-c605a20cfaa911ad51850ac6b4dab5aed8febf5f.zip |
SONAR-8134 remove RoleDao#deleteGroupRolesByResourceId()
Replaced by GroupPermissionDao#deleteByRootComponentId()
Diffstat (limited to 'sonar-db/src')
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> |