From 64f9bfaf5a450d8181df70f7110b04a1a30bc757 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 12 Oct 2016 17:44:35 +0200 Subject: [PATCH] SONAR-8134 prepare support of organizations in permission DAO --- .../step/ApplyPermissionsStepTest.java | 4 +- .../no_authorization.xml | 6 +- .../IssueAuthorizationDaoTest/shared.xml | 18 ++- .../IssueAuthorizationIndexerTest/index.xml | 12 +- .../src/main/java/org/sonar/db/DbClient.java | 2 +- .../db/permission/GroupPermissionDao.java | 38 +++++- .../db/permission/GroupPermissionMapper.java | 22 ++++ .../db/permission/PermissionRepository.java | 74 +++--------- .../db/permission/UserPermissionDto.java | 12 +- .../db/permission/GroupPermissionMapper.xml | 37 ++++++ .../db/permission/UserPermissionMapper.xml | 14 ++- .../db/permission/GroupPermissionDaoTest.java | 98 ++++++++++----- .../db/permission/PermissionDbTester.java | 9 +- .../permission/PermissionRepositoryTest.java | 79 ++---------- .../db/permission/UserPermissionDaoTest.java | 4 +- ...il_when_no_default_template_is_defined.xml | 5 - .../grantDefaultRoles-result.xml | 82 ------------- .../grantDefaultRoles.xml | 60 --------- .../grantDefaultRolesPattern-result.xml | 80 ------------ .../grantDefaultRolesPattern.xml | 73 ----------- .../grantDefaultRolesProject-result.xml | 114 ------------------ .../grantDefaultRolesProject.xml | 89 -------------- .../grantDefaultRolesSeveralPattern.xml | 73 ----------- ...grantDefaultRoles_unknown_group-result.xml | 45 ------- .../grantDefaultRoles_unknown_group.xml | 44 ------- .../grantDefaultRoles_users-result.xml | 56 --------- .../grantDefaultRoles_users.xml | 50 -------- .../grantGroupRole-result.xml | 6 - .../grantGroupRole.xml | 4 - .../grantGroupRole_anyone-result.xml | 6 - .../grantGroupRole_anyone.xml | 4 - ...pRole_ignore_if_group_not_found-result.xml | 7 -- ...antGroupRole_ignore_if_group_not_found.xml | 7 -- ...oupRole_ignore_if_not_persisted-result.xml | 7 -- ...grantGroupRole_ignore_if_not_persisted.xml | 7 -- .../grantUserRole-result.xml | 13 -- .../grantUserRole.xml | 8 -- .../hasRoles.xml | 35 ------ .../anonymous_should_be_authorized.xml | 3 +- .../group_should_be_authorized.xml | 3 +- ...ed_component_key_for_global_permission.xml | 3 +- .../keep_authorized_project_ids_for_user.xml | 6 +- ...ers_for_role_and_project_for_anonymous.xml | 9 +- ...d_users_for_role_and_project_for_group.xml | 9 +- ...ed_users_for_role_and_project_for_user.xml | 12 +- ...eturn_global_permissions_for_anonymous.xml | 22 +++- ...return_root_project_keys_for_anonymous.xml | 3 +- ...uld_return_root_project_keys_for_group.xml | 3 +- ...ould_return_root_project_keys_for_user.xml | 3 +- .../user_should_be_authorized.xml | 6 +- .../apply_default_permission_template.xml | 12 +- ...lt_permission_template_by_component_id.xml | 12 +- .../should_add_user_permission-result.xml | 34 ------ .../should_add_user_permission.xml | 32 ----- .../should_apply_permission_template.xml | 12 +- .../should_delete_group_permission-result.xml | 3 +- .../should_delete_group_permission.xml | 3 +- .../should_delete_user_permission-result.xml | 32 ----- .../should_delete_user_permission.xml | 36 ------ ..._insert_anyone_group_permission-result.xml | 33 ----- .../should_insert_anyone_group_permission.xml | 29 ----- .../should_insert_group_permission-result.xml | 32 ----- .../should_insert_group_permission.xml | 28 ----- 63 files changed, 326 insertions(+), 1358 deletions(-) delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/fail_when_no_default_template_is_defined.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesSeveralPattern.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/hasRoles.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_add_user_permission-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_add_user_permission.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_delete_user_permission-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_delete_user_permission.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission-result.xml delete mode 100644 sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission.xml diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java index 6920d4dcf16..4e1ea34e76a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java @@ -123,7 +123,7 @@ public class ApplyPermissionsStepTest extends BaseStepTest { ComponentDto projectDto = ComponentTesting.newProjectDto(ROOT_UUID).setKey(ROOT_KEY).setAuthorizationUpdatedAt(SOME_DATE); dbClient.componentDao().insert(dbSession, projectDto); // Permissions are already set on the project - dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(projectDto.getId())); + dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(projectDto.getId())); dbSession.commit(); @@ -163,7 +163,7 @@ public class ApplyPermissionsStepTest extends BaseStepTest { ComponentDto viewDto = newView(ROOT_UUID).setKey(ROOT_KEY).setAuthorizationUpdatedAt(SOME_DATE); dbClient.componentDao().insert(dbSession, viewDto); // Permissions are already set on the view - dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(viewDto.getId())); + dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(viewDto.getId())); dbSession.commit(); diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationDaoTest/no_authorization.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationDaoTest/no_authorization.xml index 2145b3a4cf9..a60740ae477 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationDaoTest/no_authorization.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationDaoTest/no_authorization.xml @@ -27,12 +27,14 @@ active="[true]" is_root="[false]"/> + name="devs" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + name="devs" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> diff --git a/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationIndexerTest/index.xml b/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationIndexerTest/index.xml index 25864891fe3..fe8f0095cce 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationIndexerTest/index.xml +++ b/server/sonar-server/src/test/resources/org/sonar/server/issue/index/IssueAuthorizationIndexerTest/index.xml @@ -27,18 +27,22 @@ + role="user" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + name="devs" + organization_uuid="org1"/> parameters = new HashMap<>(); parameters.put("permission", permission); @@ -47,16 +51,26 @@ public class GroupPermissionDao implements Dao { } /** - * ordered by group names + * @return group names, sorted in alphabetical order + * @deprecated not compatible with organizations. */ + @Deprecated public List selectGroupNamesByPermissionQuery(DbSession dbSession, PermissionQuery query) { return mapper(dbSession).selectGroupNamesByPermissionQuery(query, new RowBounds(query.getPageOffset(), query.getPageSize())); } + /** + * @deprecated not compatible with organizations. + */ + @Deprecated public int countGroupsByPermissionQuery(DbSession dbSession, PermissionQuery query) { return mapper(dbSession).countGroupsByPermissionQuery(query); } + /** + * @deprecated group name parameter is not enough to identify a group. It is not compatible with organizations. + */ + @Deprecated public List selectGroupPermissionsByGroupNamesAndProject(DbSession dbSession, List groupNames, @Nullable Long projectId) { return executeLargeInputs(groupNames, groups -> mapper(dbSession).selectGroupPermissionByGroupNames(groups, projectId)); } @@ -77,6 +91,28 @@ public class GroupPermissionDao implements Dao { }); } + /** + * @return the permissions granted to the requested group, optionally on the requested project. An + * empty list is returned if the group or project do not exist. + */ + public List selectGroupPermissions(DbSession session, long groupId, @Nullable Long projectId) { + return session.getMapper(GroupPermissionMapper.class).selectGroupPermissions(groupId, projectId); + } + + /** + * @return the permissions granted to Anyone virtual group, optionally on the requested project. An + * empty list is returned if the project does not exist. + * @deprecated not compatible with organizations if {@code projectId} is null. Should have an organization parameter. + */ + @Deprecated + public List selectAnyonePermissions(DbSession session, @Nullable Long projectId) { + return session.getMapper(GroupPermissionMapper.class).selectAnyonePermissions(projectId); + } + + public void insert(DbSession dbSession, GroupPermissionDto dto) { + mapper(dbSession).insert(dto); + } + 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 5d5c05afafb..331aa409787 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 @@ -28,13 +28,35 @@ import org.apache.ibatis.session.RowBounds; public interface GroupPermissionMapper { + /** + * @deprecated does not support organizations + */ + @Deprecated int countGroups(Map parameters); + /** + * @deprecated does not support organizations + */ + @Deprecated List selectGroupNamesByPermissionQuery(@Param("query") PermissionQuery query, RowBounds rowBounds); + /** + * @deprecated does not support organizations + */ + @Deprecated int countGroupsByPermissionQuery(@Param("query") PermissionQuery query); + /** + * @deprecated does not support organizations + */ + @Deprecated List selectGroupPermissionByGroupNames(@Param("groupNames") List groupNames, @Nullable @Param("projectId") Long projectId); void groupsCountByProjectIdAndPermission(Map parameters, ResultHandler resultHandler); + + List selectGroupPermissions(@Param("groupId") long groupId, @Nullable @Param("projectId") Long projectId); + + List selectAnyonePermissions(@Nullable @Param("projectId") Long projectId); + + void insert(GroupPermissionDto dto); } 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 01718c0367b..6b27584b2ab 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 @@ -36,7 +36,6 @@ import org.sonar.db.permission.template.PermissionTemplateCharacteristicDto; import org.sonar.db.permission.template.PermissionTemplateDto; import org.sonar.db.permission.template.PermissionTemplateGroupDto; import org.sonar.db.permission.template.PermissionTemplateUserDto; -import org.sonar.db.user.GroupDto; import static org.sonar.api.security.DefaultGroups.isAnyone; @@ -57,57 +56,12 @@ public class PermissionRepository { this.settings = settings; } - /** - * @param updateProjectAuthorizationDate is false when doing bulk action in order to not update the same project multiple times for nothing - */ - private void insertUserPermission(@Nullable Long resourceId, Long userId, String permission, boolean updateProjectAuthorizationDate, DbSession session) { - UserPermissionDto userPermissionDto = new UserPermissionDto(permission, userId, resourceId); - if (updateProjectAuthorizationDate) { - updateProjectAuthorizationDate(session, resourceId); - } - dbClient.userPermissionDao().insert(session, userPermissionDto); - } - - public void insertUserPermission(@Nullable Long resourceId, Long userId, String permission, DbSession session) { - insertUserPermission(resourceId, userId, permission, true, session); - } - - public void deleteUserPermission(@Nullable ComponentDto project, String login, String permission, DbSession session) { - if (project != null) { - dbClient.userPermissionDao().delete(session, login, project.uuid(), permission); - updateProjectAuthorizationDate(session, project.getId()); - } else { - dbClient.userPermissionDao().delete(session, login, null, permission); - } - } - - /** - * @param updateProjectAuthorizationDate is false when doing bulk action in order to not update the same project multiple times for nothing - */ - private void insertGroupPermission(@Nullable Long resourceId, @Nullable Long groupId, String permission, boolean updateProjectAuthorizationDate, DbSession session) { - GroupPermissionDto groupRole = new GroupPermissionDto() + private void insertGroupPermission(@Nullable Long resourceId, @Nullable Long groupId, String permission, DbSession session) { + GroupPermissionDto dto = new GroupPermissionDto() .setRole(permission) .setGroupId(groupId) .setResourceId(resourceId); - if (updateProjectAuthorizationDate) { - updateProjectAuthorizationDate(session, resourceId); - } - dbClient.roleDao().insertGroupRole(session, groupRole); - } - - public void insertGroupPermission(@Nullable Long resourceId, @Nullable Long groupId, String permission, DbSession session) { - insertGroupPermission(resourceId, groupId, permission, true, session); - } - - public void insertGroupPermission(@Nullable Long resourceId, String groupName, String permission, DbSession session) { - if (isAnyone(groupName)) { - insertGroupPermission(resourceId, (Long) null, permission, session); - } else { - GroupDto group = dbClient.groupDao().selectByName(session, groupName); - if (group != null) { - insertGroupPermission(resourceId, group.getId(), permission, session); - } - } + dbClient.groupPermissionDao().insert(session, dto); } public void deleteGroupPermission(@Nullable Long resourceId, @Nullable Long groupId, String permission, DbSession session) { @@ -133,19 +87,24 @@ public class PermissionRepository { } private void applyPermissionTemplate(DbSession session, String templateUuid, ComponentDto project, @Nullable Long currentUserId) { - PermissionTemplate permissionTemplate = dbClient.permissionTemplateDao().selectPermissionTemplateWithPermissions(session, templateUuid); + PermissionTemplate template = dbClient.permissionTemplateDao().selectPermissionTemplateWithPermissions(session, templateUuid); updateProjectAuthorizationDate(session, project.getId()); dbClient.roleDao().deleteGroupRolesByResourceId(session, project.getId()); dbClient.userPermissionDao().delete(session, null, project.uuid(), null); - List usersPermissions = permissionTemplate.getUserPermissions(); - usersPermissions.forEach(userPermission -> insertUserPermission(project.getId(), userPermission.getUserId(), userPermission.getPermission(), false, session)); + List usersPermissions = template.getUserPermissions(); + String organizationUuid = template.getTemplate().getOrganizationUuid(); + usersPermissions + .forEach(up -> { + UserPermissionDto dto = new UserPermissionDto(organizationUuid, up.getPermission(), up.getUserId(), project.getId()); + dbClient.userPermissionDao().insert(session, dto); + }); - List groupsPermissions = permissionTemplate.getGroupPermissions(); + List groupsPermissions = template.getGroupPermissions(); groupsPermissions.forEach(groupPermission -> insertGroupPermission(project.getId(), isAnyone(groupPermission.getGroupName()) ? null : groupPermission.getGroupId(), - groupPermission.getPermission(), false, session)); + groupPermission.getPermission(), session)); - List characteristics = permissionTemplate.getCharacteristics(); + List characteristics = template.getCharacteristics(); if (currentUserId != null) { Set permissionsForCurrentUserAlreadyInDb = usersPermissions.stream() .filter(userPermission -> currentUserId.equals(userPermission.getUserId())) @@ -154,7 +113,10 @@ public class PermissionRepository { characteristics.stream() .filter(PermissionTemplateCharacteristicDto::getWithProjectCreator) .filter(characteristic -> !permissionsForCurrentUserAlreadyInDb.contains(characteristic.getPermission())) - .forEach(characteristic -> insertUserPermission(project.getId(), currentUserId, characteristic.getPermission(), false, session)); + .forEach(c -> { + UserPermissionDto dto = new UserPermissionDto(template.getTemplate().getOrganizationUuid(), c.getPermission(), currentUserId, project.getId()); + dbClient.userPermissionDao().insert(session, dto); + }); } } diff --git a/sonar-db/src/main/java/org/sonar/db/permission/UserPermissionDto.java b/sonar-db/src/main/java/org/sonar/db/permission/UserPermissionDto.java index 3801c5bc42b..52e02b26730 100644 --- a/sonar-db/src/main/java/org/sonar/db/permission/UserPermissionDto.java +++ b/sonar-db/src/main/java/org/sonar/db/permission/UserPermissionDto.java @@ -23,6 +23,8 @@ import javax.annotation.CheckForNull; import javax.annotation.Nullable; public class UserPermissionDto { + + private String organizationUuid; private String permission; private long userId; private Long componentId; @@ -31,10 +33,11 @@ public class UserPermissionDto { // used by MyBatis } - public UserPermissionDto(String permission, long userId, @Nullable Long componentId) { + public UserPermissionDto(String organizationUuid, String permission, long userId, @Nullable Long componentId) { + this.organizationUuid = organizationUuid; + this.permission = permission; this.userId = userId; this.componentId = componentId; - this.permission = permission; } public String getPermission() { @@ -45,6 +48,10 @@ public class UserPermissionDto { return userId; } + public String getOrganizationUuid() { + return organizationUuid; + } + /** * @return {@code null} if it's a global permission, else return the project id. */ @@ -58,6 +65,7 @@ public class UserPermissionDto { StringBuilder sb = new StringBuilder("UserPermissionDto{"); sb.append("permission='").append(permission).append('\''); sb.append(", userId=").append(userId); + sb.append(", organizationUuid=").append(organizationUuid); sb.append(", componentId=").append(componentId); sb.append('}'); return sb.toString(); 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 6d0a5ce7e5f..1d1e33d64d1 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 @@ -124,4 +124,41 @@ + + + + + + insert into group_roles ( + group_id, + resource_id, + role + ) values ( + #{groupId,jdbcType=BIGINT}, + #{resourceId,jdbcType=BIGINT}, + #{role,jdbcType=VARCHAR} + ) + diff --git a/sonar-db/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml b/sonar-db/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml index 6f8feb13e51..b9163e08ad0 100644 --- a/sonar-db/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml +++ b/sonar-db/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml @@ -6,6 +6,7 @@ - insert into user_roles (user_id, resource_id, role) - values (#{userId,jdbcType=BIGINT}, #{componentId,jdbcType=BIGINT}, #{permission,jdbcType=VARCHAR}) + insert into user_roles ( + organization_uuid, + user_id, + resource_id, + role + ) values ( + #{organizationUuid,jdbcType=VARCHAR}, + #{userId,jdbcType=BIGINT}, + #{componentId,jdbcType=BIGINT}, + #{permission,jdbcType=VARCHAR} + ) 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 ce4b29ae5d3..2d67ad7deaa 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 @@ -31,7 +31,6 @@ import org.sonar.db.DbSession; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDbTester; import org.sonar.db.component.ComponentDto; -import org.sonar.db.user.GroupDbTester; import org.sonar.db.user.GroupDto; import static java.util.Arrays.asList; @@ -49,22 +48,25 @@ import static org.sonar.db.user.GroupTesting.newGroupDto; public class GroupPermissionDaoTest { - private static final long COMPONENT_ID = 100L; + private static final long GROUP_1_ID = 10L; + private static final long GROUP_2_ID = 11L; + private static final long PROJECT_1_ID = 100L; + private static final Long ANYONE_ID = null; + private static final long UNKNOWN_PROJECT_ID = -1L; + private static final long UNKNOWN_GROUP_ID = -1L; @Rule public DbTester db = DbTester.create(System2.INSTANCE); - private GroupDbTester groupDb = new GroupDbTester(db); private PermissionDbTester permissionDb = new PermissionDbTester(db); private ComponentDbTester componentDb = new ComponentDbTester(db); private DbSession dbSession = db.getSession(); - private GroupPermissionDao underTest = new GroupPermissionDao(); @Test public void group_count_by_permission_and_component_id() { - GroupDto group1 = groupDb.insertGroup(); - GroupDto group2 = groupDb.insertGroup(); - GroupDto group3 = groupDb.insertGroup(); + GroupDto group1 = db.users().insertGroup(newGroupDto()); + GroupDto group2 = db.users().insertGroup(newGroupDto()); + GroupDto group3 = db.users().insertGroup(newGroupDto()); permissionDb.addProjectPermissionToGroup(ISSUE_ADMIN, group1.getId(), 42L); permissionDb.addProjectPermissionToGroup(ADMIN, group1.getId(), 123L); @@ -86,9 +88,9 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query() { - GroupDto group1 = groupDb.insertGroup(newGroupDto()); - GroupDto group2 = groupDb.insertGroup(newGroupDto()); - GroupDto group3 = groupDb.insertGroup(newGroupDto()); + GroupDto group1 = db.users().insertGroup(newGroupDto()); + GroupDto group2 = db.users().insertGroup(newGroupDto()); + GroupDto group3 = db.users().insertGroup(newGroupDto()); permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, null); List groupNames = underTest.selectGroupNamesByPermissionQuery(dbSession, PermissionQuery.builder().build()); @@ -97,9 +99,9 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_is_ordered_by_group_names() { - groupDb.insertGroup(newGroupDto().setName("Group-2")); - groupDb.insertGroup(newGroupDto().setName("Group-3")); - groupDb.insertGroup(newGroupDto().setName("Group-1")); + db.users().insertGroup(newGroupDto().setName("Group-2")); + db.users().insertGroup(newGroupDto().setName("Group-3")); + db.users().insertGroup(newGroupDto().setName("Group-1")); permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, null); assertThat(underTest.selectGroupNamesByPermissionQuery(dbSession, @@ -108,9 +110,9 @@ public class GroupPermissionDaoTest { @Test public void count_groups_by_query() { - GroupDto group1 = groupDb.insertGroup(newGroupDto().setName("Group-1")); - GroupDto group2 = groupDb.insertGroup(newGroupDto().setName("Group-2")); - GroupDto group3 = groupDb.insertGroup(newGroupDto().setName("Group-3")); + GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1")); + GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2")); + GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3")); permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, null); permissionDb.addGlobalPermissionToGroup(PROVISIONING, group1.getId()); @@ -128,9 +130,9 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_with_global_permission() { - GroupDto group1 = groupDb.insertGroup(newGroupDto().setName("Group-1")); - GroupDto group2 = groupDb.insertGroup(newGroupDto().setName("Group-2")); - GroupDto group3 = groupDb.insertGroup(newGroupDto().setName("Group-3")); + GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1")); + GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2")); + GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3")); ComponentDto project = componentDb.insertComponent(newProjectDto()); @@ -152,9 +154,9 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_with_project_permissions() { - GroupDto group1 = groupDb.insertGroup(); - GroupDto group2 = groupDb.insertGroup(); - GroupDto group3 = groupDb.insertGroup(); + GroupDto group1 = db.users().insertGroup(newGroupDto()); + GroupDto group2 = db.users().insertGroup(newGroupDto()); + GroupDto group3 = db.users().insertGroup(newGroupDto()); ComponentDto project = componentDb.insertComponent(newProjectDto()); ComponentDto anotherProject = componentDb.insertComponent(newProjectDto()); @@ -180,7 +182,7 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_paginated() { - IntStream.rangeClosed(0, 9).forEach(i -> groupDb.insertGroup(newGroupDto().setName(i + "-name"))); + IntStream.rangeClosed(0, 9).forEach(i -> db.users().insertGroup(newGroupDto().setName(i + "-name"))); assertThat(underTest.selectGroupNamesByPermissionQuery(dbSession, PermissionQuery.builder().setPageIndex(2).setPageSize(3).build())).containsExactly("3-name", "4-name", "5-name"); @@ -188,8 +190,8 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_with_search_query() { - GroupDto group = groupDb.insertGroup(newGroupDto().setName("group-anyone")); - groupDb.insertGroup(newGroupDto().setName("unknown")); + GroupDto group = db.users().insertGroup(newGroupDto().setName("group-anyone")); + db.users().insertGroup(newGroupDto().setName("unknown")); permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, group.getId()); assertThat(underTest.selectGroupNamesByPermissionQuery(dbSession, @@ -198,7 +200,7 @@ public class GroupPermissionDaoTest { @Test public void select_groups_by_query_does_not_return_anyone_when_group_roles_is_empty() { - GroupDto group = groupDb.insertGroup(); + GroupDto group = db.users().insertGroup(newGroupDto()); assertThat(underTest.selectGroupNamesByPermissionQuery(dbSession, PermissionQuery.builder().build())) @@ -208,14 +210,14 @@ public class GroupPermissionDaoTest { @Test public void select_group_permissions_by_group_names_on_global_permissions() { - GroupDto group1 = groupDb.insertGroup(newGroupDto().setName("Group-1")); + GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1")); permissionDb.addGlobalPermissionToGroup(SCAN_EXECUTION, group1.getId()); - GroupDto group2 = groupDb.insertGroup(newGroupDto().setName("Group-2")); + GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2")); ComponentDto project = componentDb.insertComponent(newProjectDto()); permissionDb.addProjectPermissionToGroup(UserRole.ADMIN, group2.getId(), project.getId()); - GroupDto group3 = groupDb.insertGroup(newGroupDto().setName("Group-3")); + GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3")); permissionDb.addGlobalPermissionToGroup(SYSTEM_ADMIN, group3.getId()); // Anyone @@ -245,14 +247,14 @@ public class GroupPermissionDaoTest { @Test public void select_group_permissions_by_group_names_on_project_permissions() { - GroupDto group1 = groupDb.insertGroup(newGroupDto().setName("Group-1")); + GroupDto group1 = db.users().insertGroup(newGroupDto().setName("Group-1")); permissionDb.addGlobalPermissionToGroup(PROVISIONING, group1.getId()); - GroupDto group2 = groupDb.insertGroup(newGroupDto().setName("Group-2")); + GroupDto group2 = db.users().insertGroup(newGroupDto().setName("Group-2")); ComponentDto project = componentDb.insertComponent(newProjectDto()); permissionDb.addProjectPermissionToGroup(USER, group2.getId(), project.getId()); - GroupDto group3 = groupDb.insertGroup(newGroupDto().setName("Group-3")); + GroupDto group3 = db.users().insertGroup(newGroupDto().setName("Group-3")); permissionDb.addProjectPermissionToGroup(USER, group3.getId(), project.getId()); // Anyone group @@ -279,4 +281,36 @@ public class GroupPermissionDaoTest { assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, Collections.emptyList(), project.getId())).isEmpty(); } + @Test + public void selectGroupPermissions() { + permissionDb.addGlobalPermissionToGroup("perm1", ANYONE_ID); + permissionDb.addGlobalPermissionToGroup("perm2", GROUP_1_ID); + permissionDb.addGlobalPermissionToGroup("perm3", GROUP_1_ID); + permissionDb.addGlobalPermissionToGroup("perm4", GROUP_2_ID); + permissionDb.addProjectPermissionToGroup("perm5", GROUP_1_ID, PROJECT_1_ID); + permissionDb.addProjectPermissionToGroup("perm6", ANYONE_ID, PROJECT_1_ID); + + // select global permissions on group + assertThat(underTest.selectGroupPermissions(dbSession, GROUP_1_ID, null)).containsOnly("perm2", "perm3"); + assertThat(underTest.selectGroupPermissions(dbSession, UNKNOWN_GROUP_ID, null)).isEmpty(); + + // select project permissions on group + assertThat(underTest.selectGroupPermissions(dbSession, GROUP_1_ID, PROJECT_1_ID)).containsOnly("perm5"); + assertThat(underTest.selectGroupPermissions(dbSession, GROUP_1_ID, UNKNOWN_PROJECT_ID)).isEmpty(); + } + + @Test + public void selectAnyonePermissions() { + permissionDb.addGlobalPermissionToGroup("perm1", ANYONE_ID); + permissionDb.addGlobalPermissionToGroup("perm2", GROUP_1_ID); + permissionDb.addProjectPermissionToGroup("perm3", GROUP_1_ID, PROJECT_1_ID); + permissionDb.addProjectPermissionToGroup("perm4",ANYONE_ID, PROJECT_1_ID); + + // select global permissions on group + assertThat(underTest.selectAnyonePermissions(dbSession, null)).containsOnly("perm1"); + + // select project permissions on group + assertThat(underTest.selectAnyonePermissions(dbSession, PROJECT_1_ID)).containsOnly("perm4"); + assertThat(underTest.selectAnyonePermissions(dbSession, UNKNOWN_PROJECT_ID)).isEmpty(); + } } diff --git a/sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java b/sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java index a398d5f1293..bb64257e3b4 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java @@ -36,13 +36,8 @@ public class PermissionDbTester { this.dbSession = db.getSession(); } - public void addGlobalPermissionToUser(String permission, long userId) { - dbClient.userPermissionDao().insert(dbSession, new UserPermissionDto(permission, userId, null)); - db.commit(); - } - public void addProjectPermissionToGroup(String permission, @Nullable Long groupId, long componentId) { - dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto() + dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto() .setRole(permission) .setGroupId(groupId) .setResourceId(componentId)); @@ -50,7 +45,7 @@ public class PermissionDbTester { } public void addGlobalPermissionToGroup(String permission, @Nullable Long groupId) { - dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto() + dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto() .setRole(permission) .setGroupId(groupId)); db.commit(); diff --git a/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java b/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java index 2bfefb3664b..5b53fef921f 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/PermissionRepositoryTest.java @@ -34,16 +34,15 @@ import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.permission.template.PermissionTemplateDbTester; import org.sonar.db.permission.template.PermissionTemplateDto; -import org.sonar.db.user.GroupDbTester; import org.sonar.db.user.GroupDto; import org.sonar.db.user.RoleDao; -import org.sonar.db.user.UserDbTester; import org.sonar.db.user.UserDto; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION; +import static org.sonar.db.user.GroupTesting.newGroupDto; public class PermissionRepositoryTest { @@ -59,13 +58,10 @@ public class PermissionRepositoryTest { @Rule public DbTester dbTester = DbTester.create(system2); - GroupDbTester groupDb = new GroupDbTester(dbTester); - UserDbTester userDb = new UserDbTester(dbTester); - PermissionTemplateDbTester templateDb = new PermissionTemplateDbTester(dbTester); - DbSession session = dbTester.getSession(); - - Settings settings = new MapSettings(); - PermissionRepository underTest = new PermissionRepository(dbTester.getDbClient(), settings); + private PermissionTemplateDbTester templateDb = new PermissionTemplateDbTester(dbTester); + private DbSession session = dbTester.getSession(); + private Settings settings = new MapSettings(); + private PermissionRepository underTest = new PermissionRepository(dbTester.getDbClient(), settings); @Before public void setUp() { @@ -114,65 +110,6 @@ public class PermissionRepositoryTest { dbTester.assertDbUnitTable(getClass(), "apply_default_permission_template-result.xml", "user_roles", "user_id", "resource_id", "role"); } - @Test - public void should_add_user_permission() { - dbTester.prepareDbUnit(getClass(), "should_add_user_permission.xml"); - - underTest.insertUserPermission(PROJECT.getId(), 200L, UserRole.ADMIN, session); - session.commit(); - - dbTester.assertDbUnitTable(getClass(), "should_add_user_permission-result.xml", "user_roles", "user_id", "resource_id", "role"); - dbTester.assertDbUnitTable(getClass(), "should_add_user_permission-result.xml", "projects", "authorization_updated_at"); - - checkAuthorizationUpdatedAtIsUpdated(); - } - - @Test - public void should_delete_user_permission() { - dbTester.prepareDbUnit(getClass(), "should_delete_user_permission.xml"); - - underTest.deleteUserPermission(PROJECT, "dave.loper", UserRole.ADMIN, session); - session.commit(); - - dbTester.assertDbUnitTable(getClass(), "should_delete_user_permission-result.xml", "user_roles", "user_id", "resource_id", "role"); - dbTester.assertDbUnitTable(getClass(), "should_delete_user_permission-result.xml", "projects", "authorization_updated_at"); - checkAuthorizationUpdatedAtIsUpdated(); - } - - @Test - public void should_insert_group_permission() { - dbTester.prepareDbUnit(getClass(), "should_insert_group_permission.xml"); - - underTest.insertGroupPermission(PROJECT.getId(), 100L, UserRole.USER, session); - session.commit(); - - dbTester.assertDbUnitTable(getClass(), "should_insert_group_permission-result.xml", "group_roles", "group_id", "resource_id", "role"); - dbTester.assertDbUnitTable(getClass(), "should_insert_group_permission-result.xml", "projects", "authorization_updated_at"); - checkAuthorizationUpdatedAtIsUpdated(); - } - - @Test - public void should_insert_group_name_permission() { - dbTester.prepareDbUnit(getClass(), "should_insert_group_permission.xml"); - - underTest.insertGroupPermission(PROJECT.getId(), "devs", UserRole.USER, session); - session.commit(); - - dbTester.assertDbUnitTable(getClass(), "should_insert_group_permission-result.xml", "group_roles", "group_id", "resource_id", "role"); - dbTester.assertDbUnitTable(getClass(), "should_insert_group_permission-result.xml", "projects", "authorization_updated_at"); - } - - @Test - public void should_insert_anyone_group_permission() { - dbTester.prepareDbUnit(getClass(), "should_insert_anyone_group_permission.xml"); - - underTest.insertGroupPermission(PROJECT.getId(), "Anyone", UserRole.USER, session); - session.commit(); - - dbTester.assertDbUnitTable(getClass(), "should_insert_anyone_group_permission-result.xml", "group_roles", "group_id", "resource_id", "role"); - dbTester.assertDbUnitTable(getClass(), "should_insert_anyone_group_permission-result.xml", "projects", "authorization_updated_at"); - } - @Test public void should_delete_group_permission() { dbTester.prepareDbUnit(getClass(), "should_delete_group_permission.xml"); @@ -187,9 +124,9 @@ public class PermissionRepositoryTest { @Test public void would_user_have_permission_with_default_permission_template() { - UserDto user = userDb.insertUser(); - GroupDto group = groupDb.insertGroup(); - groupDb.addUserToGroup(user.getId(), group.getId()); + UserDto user = dbTester.users().insertUser(); + GroupDto group = dbTester.users().insertGroup(newGroupDto()); + dbTester.users().insertMember(group, user); PermissionTemplateDto template = templateDb.insertTemplate(); setDefaultTemplateUuid(template.getUuid()); templateDb.addProjectCreatorToTemplate(template.getId(), SCAN_EXECUTION); diff --git a/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java b/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java index d6c2af7f53b..6b9f7a6f708 100644 --- a/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/permission/UserPermissionDaoTest.java @@ -320,14 +320,14 @@ public class UserPermissionDaoTest { } private UserPermissionDto insertGlobalPermission(String permission, long userId) { - UserPermissionDto dto = new UserPermissionDto(permission, userId, null); + UserPermissionDto dto = new UserPermissionDto(dbTester.getDefaultOrganization().getUuid(), permission, userId, null); underTest.insert(dbTester.getSession(), dto); dbTester.commit(); return dto; } private UserPermissionDto insertProjectPermission(String permission, long userId, long projectId) { - UserPermissionDto dto = new UserPermissionDto(permission, userId, projectId); + UserPermissionDto dto = new UserPermissionDto(dbTester.getDefaultOrganization().getUuid(), permission, userId, projectId); underTest.insert(dbTester.getSession(), dto); dbTester.commit(); return dto; diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/fail_when_no_default_template_is_defined.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/fail_when_no_default_template_is_defined.xml deleted file mode 100644 index 1fffc1facb2..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/fail_when_no_default_template_is_defined.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles-result.xml deleted file mode 100644 index 9ead92bbb12..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles-result.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles.xml deleted file mode 100644 index 609b3e57739..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern-result.xml deleted file mode 100644 index 3402bd2adcf..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern-result.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern.xml deleted file mode 100644 index fa4c829202c..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesPattern.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject-result.xml deleted file mode 100644 index e79b0f2567f..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject-result.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject.xml deleted file mode 100644 index 1cd2d2c0544..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesProject.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesSeveralPattern.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesSeveralPattern.xml deleted file mode 100644 index 231a7cdd71a..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRolesSeveralPattern.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group-result.xml deleted file mode 100644 index fa6f0be4f65..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group-result.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group.xml deleted file mode 100644 index 0f911d4976e..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_unknown_group.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users-result.xml deleted file mode 100644 index eb800a9f517..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users-result.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users.xml deleted file mode 100644 index c56ed11a533..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantDefaultRoles_users.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole-result.xml deleted file mode 100644 index 9d3ae472eb6..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole-result.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole.xml deleted file mode 100644 index 8e0c38ff39f..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone-result.xml deleted file mode 100644 index 62ecece0705..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone-result.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone.xml deleted file mode 100644 index 8e0c38ff39f..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_anyone.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found-result.xml deleted file mode 100644 index 41ed8af1f82..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found-result.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found.xml deleted file mode 100644 index 41ed8af1f82..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_group_not_found.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted-result.xml deleted file mode 100644 index 41ed8af1f82..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted-result.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted.xml deleted file mode 100644 index 41ed8af1f82..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantGroupRole_ignore_if_not_persisted.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole-result.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole-result.xml deleted file mode 100644 index 0710211a205..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole-result.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole.xml deleted file mode 100644 index 9b2062063ee..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/grantUserRole.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/hasRoles.xml b/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/hasRoles.xml deleted file mode 100644 index a24d8cb4f1e..00000000000 --- a/sonar-db/src/test/resources/org/sonar/core/resource/DefaultResourcePermissionsTest/hasRoles.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/anonymous_should_be_authorized.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/anonymous_should_be_authorized.xml index edee0fdd08c..82ffcce1b25 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/anonymous_should_be_authorized.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/anonymous_should_be_authorized.xml @@ -3,7 +3,8 @@ + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="codeviewer" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_group.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_group.xml index 3b7278e4c0a..0c6ecc21c52 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_group.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_group.xml @@ -4,15 +4,18 @@ + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_user.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_user.xml index 173657868ec..e24046e8ea2 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_user.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/keep_authorized_users_for_role_and_project_for_user.xml @@ -4,19 +4,23 @@ + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_global_permissions_for_anonymous.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_global_permissions_for_anonymous.xml index 515b647b270..69d6d1deac1 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_global_permissions_for_anonymous.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_global_permissions_for_anonymous.xml @@ -1,11 +1,23 @@ - + - - + + - - + + diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_root_project_keys_for_anonymous.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_root_project_keys_for_anonymous.xml index 2478b403566..7349539dd9e 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_root_project_keys_for_anonymous.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionDaoTest/should_return_root_project_keys_for_anonymous.xml @@ -3,7 +3,8 @@ + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + role="user" + organization_uuid="org1"/> + name="sonar-administrators" + organization_uuid="org1"/> + name="sonar-users" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + kee="default_20130101_010203" + organization_uuid="org1"/> + name="sonar-administrators" + organization_uuid="org1"/> + name="sonar-users" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + kee="default_20130101_010203" + organization_uuid="org1"/> - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_add_user_permission.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_add_user_permission.xml deleted file mode 100644 index d05c847f70f..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_add_user_permission.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml index 49d49e682df..02d96a19072 100644 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml +++ b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_apply_permission_template.xml @@ -18,9 +18,11 @@ id="123"/> + name="sonar-administrators" + organization_uuid="org1"/> + name="sonar-users" + organization_uuid="org1"/> + role="admin" + organization_uuid="org1"/> + kee="default_20130101_010203" + organization_uuid="org1"/> + name="devs" + organization_uuid="org1"/> + name="devs" + organization_uuid="org1"/> - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_delete_user_permission.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_delete_user_permission.xml deleted file mode 100644 index 4cdf709a435..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_delete_user_permission.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission-result.xml deleted file mode 100644 index e4ce3ca8e6c..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission-result.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission.xml deleted file mode 100644 index 63bc614a815..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_anyone_group_permission.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission-result.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission-result.xml deleted file mode 100644 index b39a3dfe4bb..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission-result.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - diff --git a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission.xml b/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission.xml deleted file mode 100644 index 930c3265d8e..00000000000 --- a/sonar-db/src/test/resources/org/sonar/db/permission/PermissionRepositoryTest/should_insert_group_permission.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - -- 2.39.5