Browse Source

Move and rename GroupRoleDto to GroupPermissionDto

tags/6.2-RC1
Simon Brandhof 7 years ago
parent
commit
dca860b61a
26 changed files with 94 additions and 105 deletions
  1. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
  2. 3
    3
      server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java
  3. 12
    12
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java
  4. 4
    4
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java
  5. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
  6. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java
  7. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java
  8. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/project/ws/SearchMyProjectsActionTest.java
  9. 3
    3
      server/sonar-server/src/test/java/org/sonar/server/qualitygate/QgateProjectFinderTest.java
  10. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java
  11. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/user/ServerUserSessionTest.java
  12. 6
    6
      server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
  13. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java
  14. 2
    2
      sonar-db/src/main/java/org/sonar/db/MyBatis.java
  15. 1
    2
      sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java
  16. 5
    15
      sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDto.java
  17. 1
    2
      sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java
  18. 2
    3
      sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java
  19. 8
    7
      sonar-db/src/main/java/org/sonar/db/user/RoleDao.java
  20. 5
    4
      sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java
  21. 1
    1
      sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
  22. 1
    1
      sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
  23. 6
    7
      sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java
  24. 2
    3
      sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java
  25. 11
    10
      sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java
  26. 3
    2
      sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java View File

@@ -37,7 +37,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.PermissionQuery;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.WsPermissions.Group;
import org.sonarqube.ws.WsPermissions.WsGroupsResponse;
@@ -104,7 +104,7 @@ public class GroupsAction implements PermissionsWsAction {
PermissionQuery dbQuery = buildPermissionQuery(request, project);
List<GroupDto> groups = findGroups(dbSession, dbQuery);
int total = dbClient.groupPermissionDao().countGroupsByPermissionQuery(dbSession, dbQuery);
List<GroupRoleDto> groupsWithPermission = findGroupPermissions(dbSession, groups, project);
List<GroupPermissionDto> groupsWithPermission = findGroupPermissions(dbSession, groups, project);
return buildResponse(groups, groupsWithPermission, Paging.forPageIndex(request.getPage()).withPageSize(request.getPageSize()).andTotal(total));
} finally {
dbClient.closeSession(dbSession);
@@ -140,7 +140,7 @@ public class GroupsAction implements PermissionsWsAction {
return permissionQuery.build();
}

private static WsGroupsResponse buildResponse(List<GroupDto> groups, List<GroupRoleDto> groupPermissions, Paging paging) {
private static WsGroupsResponse buildResponse(List<GroupDto> groups, List<GroupPermissionDto> groupPermissions, Paging paging) {
Multimap<Long, String> permissionsByGroupId = TreeMultimap.create();
groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getRole()));
WsGroupsResponse.Builder response = WsGroupsResponse.newBuilder();
@@ -174,7 +174,7 @@ public class GroupsAction implements PermissionsWsAction {
return Ordering.explicit(orderedNames).onResultOf(GroupDto::getName).immutableSortedCopy(groups);
}

private List<GroupRoleDto> findGroupPermissions(DbSession dbSession, List<GroupDto> groups, Optional<ComponentDto> project) {
private List<GroupPermissionDto> findGroupPermissions(DbSession dbSession, List<GroupDto> groups, Optional<ComponentDto> project) {
if (groups.isEmpty()) {
return emptyList();
}

+ 3
- 3
server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java View File

@@ -38,7 +38,7 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTesting;
import org.sonar.db.permission.PermissionRepository;
import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.server.computation.task.projectanalysis.component.Component;
import org.sonar.server.computation.task.projectanalysis.component.MutableDbIdsRepositoryRule;
import org.sonar.server.computation.task.projectanalysis.component.ReportComponent;
@@ -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 GroupRoleDto().setRole(UserRole.USER).setGroupId(null).setResourceId(projectDto.getId()));
dbClient.roleDao().insertGroupRole(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 GroupRoleDto().setRole(UserRole.USER).setGroupId(null).setResourceId(viewDto.getId()));
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(viewDto.getId()));

dbSession.commit();


+ 12
- 12
server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java View File

@@ -34,7 +34,7 @@ import org.sonar.db.component.ComponentDbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ResourceTypesRule;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.ForbiddenException;
@@ -91,10 +91,10 @@ public class GroupsActionTest {
GroupDto group1 = insertGroup(new GroupDto().setName("group-1-name").setDescription("group-1-description"));
GroupDto group2 = insertGroup(new GroupDto().setName("group-2-name").setDescription("group-2-description"));
GroupDto group3 = insertGroup(new GroupDto().setName("group-3-name").setDescription("group-3-description"));
insertGroupRole(new GroupRoleDto().setGroupId(group1.getId()).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupRoleDto().setGroupId(group2.getId()).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupRoleDto().setGroupId(null).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupRoleDto().setGroupId(group3.getId()).setRole(SYSTEM_ADMIN));
insertGroupRole(new GroupPermissionDto().setGroupId(group1.getId()).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupPermissionDto().setGroupId(group2.getId()).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupPermissionDto().setGroupId(null).setRole(SCAN_EXECUTION));
insertGroupRole(new GroupPermissionDto().setGroupId(group3.getId()).setRole(SYSTEM_ADMIN));
}

@Test
@@ -146,14 +146,14 @@ public class GroupsActionTest {

ComponentDto project = componentDb.insertComponent(newProjectDto("project-uuid"));
GroupDto group = insertGroup(new GroupDto().setName("project-group-name"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(project.getId()));

ComponentDto anotherProject = componentDb.insertComponent(newProjectDto());
GroupDto anotherGroup = insertGroup(new GroupDto().setName("another-project-group-name"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(anotherGroup.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(anotherProject.getId()));
@@ -176,7 +176,7 @@ public class GroupsActionTest {

ComponentDto project = componentDb.insertComponent(newProjectDto("project-uuid"));
GroupDto group = insertGroup(new GroupDto().setName("group-with-permission"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(project.getId()));
@@ -201,7 +201,7 @@ public class GroupsActionTest {

ComponentDto project = componentDb.insertComponent(newProjectDto("project-uuid"));
GroupDto group = insertGroup(new GroupDto().setName("project-group-name"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(project.getId()));
@@ -223,7 +223,7 @@ public class GroupsActionTest {

ComponentDto project = componentDb.insertComponent(newProjectDto("project-uuid"));
GroupDto group = insertGroup(new GroupDto().setName("group-with-permission"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(project.getId()));
@@ -240,7 +240,7 @@ public class GroupsActionTest {
public void search_groups_on_views() {
ComponentDto view = componentDb.insertComponent(newView("view-uuid").setKey("view-key"));
GroupDto group = insertGroup(new GroupDto().setName("project-group-name"));
insertGroupRole(new GroupRoleDto()
insertGroupRole(new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(ISSUE_ADMIN)
.setResourceId(view.getId()));
@@ -304,7 +304,7 @@ public class GroupsActionTest {
return result;
}

private void insertGroupRole(GroupRoleDto groupRole) {
private void insertGroupRole(GroupPermissionDto groupRole) {
dbClient.roleDao().insertGroupRole(dbSession, groupRole);
commit();
}

+ 4
- 4
server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchGlobalPermissionsActionTest.java View File

@@ -28,7 +28,7 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
import org.sonar.server.exceptions.ForbiddenException;
@@ -148,7 +148,7 @@ public class SearchGlobalPermissionsActionTest {
return db.getDbClient().groupDao().insert(db.getSession(), groupDto);
}

private void insertGroupRole(GroupRoleDto group) {
private void insertGroupRole(GroupPermissionDto group) {
db.getDbClient().roleDao().insertGroupRole(db.getSession(), group);
}

@@ -160,8 +160,8 @@ public class SearchGlobalPermissionsActionTest {
return new GroupDto().setName(name).setDescription(description);
}

private static GroupRoleDto newGroupRole(String role, @Nullable Long groupId) {
GroupRoleDto groupRole = new GroupRoleDto().setRole(role);
private static GroupPermissionDto newGroupRole(String role, @Nullable Long groupId) {
GroupPermissionDto groupRole = new GroupPermissionDto().setRole(role);
if (groupId != null) {
groupRole.setGroupId(groupId);
}

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java View File

@@ -36,7 +36,7 @@ import org.sonar.db.component.ComponentDbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ResourceTypesRule;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
import org.sonar.server.component.ComponentFinder;
@@ -335,7 +335,7 @@ public class SearchProjectPermissionsActionTest {
}

private void insertGroupRole(String permission, @Nullable Long resourceId, @Nullable Long groupId) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto().setRole(permission).setResourceId(resourceId).setGroupId(groupId));
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setRole(permission).setResourceId(resourceId).setGroupId(groupId));
}

private ComponentDto insertComponent(ComponentDto component) {

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java View File

@@ -39,7 +39,7 @@ import org.sonar.db.permission.PermissionQuery;
import org.sonar.db.permission.PermissionRepository;
import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
import org.sonar.server.component.ComponentFinder;
@@ -275,7 +275,7 @@ public class ApplyTemplateActionTest {
}

private void addGroupPermissionToProject(GroupDto group, ComponentDto project, String permission) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setResourceId(project.getId())
.setGroupId(group.getId()));

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/BulkApplyTemplateActionTest.java View File

@@ -42,7 +42,7 @@ import org.sonar.db.permission.PermissionRepository;
import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.user.GroupDbTester;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDbTester;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
@@ -246,7 +246,7 @@ public class BulkApplyTemplateActionTest {
}

private void addGroupPermissionToProject(GroupDto group, ComponentDto project, String permission) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setResourceId(project.getId())
.setGroupId(group.getId()));

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/project/ws/SearchMyProjectsActionTest.java View File

@@ -43,7 +43,7 @@ import org.sonar.db.component.SnapshotDto;
import org.sonar.db.metric.MetricDto;
import org.sonar.db.user.GroupDbTester;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDbTester;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
@@ -332,7 +332,7 @@ public class SearchMyProjectsActionTest {
}

private void insertGroupPermission(String permission, long groupId, long componentId) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setGroupId(groupId)
.setResourceId(componentId));

+ 3
- 3
server/sonar-server/src/test/java/org/sonar/server/qualitygate/QgateProjectFinderTest.java View File

@@ -38,7 +38,7 @@ import org.sonar.db.component.ComponentDto;
import org.sonar.db.property.PropertyDto;
import org.sonar.db.qualitygate.ProjectQgateAssociation;
import org.sonar.db.qualitygate.QualityGateDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
import org.sonar.server.exceptions.NotFoundException;
@@ -246,14 +246,14 @@ public class QgateProjectFinderTest {

private ComponentDto insertProjectAuthorizedToAnyone(ComponentDto project) {
componentDbTester.insertComponent(project);
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
dbSession.commit();
return project;
}

private ComponentDto insertProjectAuthorizedToUser(ComponentDto project, UserDto userDto) {
componentDbTester.insertComponent(project);
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
dbSession.commit();
return project;
}

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java View File

@@ -30,7 +30,7 @@ import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTesting;
import org.sonar.db.qualityprofile.QualityProfileDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.RoleDao;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
@@ -224,7 +224,7 @@ public class ProjectsActionTest {

private void addBrowsePermissionToAnyone(DbSession session, ComponentDto... projects) {
for (ComponentDto project : projects) {
roleDao.insertGroupRole(session, new GroupRoleDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
roleDao.insertGroupRole(session, new GroupPermissionDto().setGroupId(null).setResourceId(project.getId()).setRole(UserRole.USER));
}
}


+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/user/ServerUserSessionTest.java View File

@@ -33,7 +33,7 @@ import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTesting;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserPermissionDto;
import org.sonar.server.exceptions.ForbiddenException;
@@ -292,7 +292,7 @@ public class ServerUserSessionTest {

private void addAnonymousPermissions(@Nullable ComponentDto component, String... permissions) {
for (String permission : permissions) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setResourceId(component == null ? null : component.getId()));
}

+ 6
- 6
server/sonar-server/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java View File

@@ -37,7 +37,7 @@ import org.sonar.db.permission.template.PermissionTemplateDao;
import org.sonar.db.user.GroupDao;
import org.sonar.db.user.GroupDbTester;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.RoleDao;
import org.sonar.db.user.UserDbTester;
import org.sonar.db.user.UserDto;
@@ -131,7 +131,7 @@ public class DeleteActionTest {
@Test
public void delete_with_permissions() throws Exception {
GroupDto group = groupDao.insert(dbSession, new GroupDto().setName("to-delete"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(group.getId()).setResourceId(42L).setRole(UserRole.ADMIN));
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(group.getId()).setResourceId(42L).setRole(UserRole.ADMIN));
dbSession.commit();

loginAsAdmin();
@@ -175,7 +175,7 @@ public class DeleteActionTest {
@Test
public void cannot_delete_last_system_admin_group() throws Exception {
GroupDto group = groupDb.insertGroup(newGroupDto().setName("system-admins"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(group.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(group.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
assertThat(groupPermissionDao.countGroups(dbSession, GlobalPermissions.SYSTEM_ADMIN, null)).isEqualTo(1);
dbSession.commit();
loginAsAdmin();
@@ -191,9 +191,9 @@ public class DeleteActionTest {
@Test
public void can_delete_system_admin_group_if_not_last() throws Exception {
GroupDto funkyAdmins = groupDb.insertGroup(newGroupDto().setName("funky-admins"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(funkyAdmins.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(funkyAdmins.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
GroupDto boringAdmins = groupDb.insertGroup(newGroupDto().setName("boring-admins"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(boringAdmins.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(boringAdmins.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
dbSession.commit();

loginAsAdmin();
@@ -208,7 +208,7 @@ public class DeleteActionTest {
@Test
public void can_delete_last_system_admin_group_if_admin_user_left() throws Exception {
GroupDto lastGroup = groupDb.insertGroup(newGroupDto().setName("last-group"));
roleDao.insertGroupRole(dbSession, new GroupRoleDto().setGroupId(lastGroup.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
roleDao.insertGroupRole(dbSession, new GroupPermissionDto().setGroupId(lastGroup.getId()).setRole(GlobalPermissions.SYSTEM_ADMIN));
UserDto bigBoss = userDb.insertUser(newUserDto("big.boss", "Big Boss", "big@boss.com"));
roleDao.insertUserRole(dbSession, new UserPermissionDto().setUserId(bigBoss.getId()).setPermission(GlobalPermissions.SYSTEM_ADMIN));
dbSession.commit();

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java View File

@@ -36,7 +36,7 @@ import org.sonar.db.component.ComponentTesting;
import org.sonar.db.issue.IssueDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleTesting;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.server.es.EsTester;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.es.SearchResult;
@@ -187,7 +187,7 @@ public class ViewIndexerTest {
ComponentDto project = ComponentTesting.newProjectDto();
ComponentDto file = ComponentTesting.newFileDto(project, null);
dbClient.componentDao().insert(dbSession, project, file);
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.USER).setGroupId(null).setResourceId(project.getId()));
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(null).setResourceId(project.getId()));

IssueDto issue = IssueTesting.newDto(rule, file, project);
dbClient.issueDao().insert(dbSession, issue);

+ 2
- 2
sonar-db/src/main/java/org/sonar/db/MyBatis.java View File

@@ -121,7 +121,7 @@ import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupMapper;
import org.sonar.db.user.GroupMembershipDto;
import org.sonar.db.user.GroupMembershipMapper;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.user.RoleMapper;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserGroupDto;
@@ -178,7 +178,7 @@ public class MyBatis {
confBuilder.loadAlias("FilePathWithHash", FilePathWithHashDto.class);
confBuilder.loadAlias("Group", GroupDto.class);
confBuilder.loadAlias("GroupMembership", GroupMembershipDto.class);
confBuilder.loadAlias("GroupRole", GroupRoleDto.class);
confBuilder.loadAlias("GroupPermission", GroupPermissionDto.class);
confBuilder.loadAlias("IdUuidPair", IdUuidPair.class);
confBuilder.loadAlias("InternalProperty", InternalPropertyDto.class);
confBuilder.loadAlias("IssueChange", IssueChangeDto.class);

+ 1
- 2
sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDao.java View File

@@ -28,7 +28,6 @@ import org.apache.ibatis.session.RowBounds;
import org.sonar.api.security.DefaultGroups;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;
import org.sonar.db.user.GroupRoleDto;

import static org.sonar.db.DatabaseUtils.executeLargeInputs;
import static org.sonar.db.DatabaseUtils.executeLargeInputsWithoutOutput;
@@ -58,7 +57,7 @@ public class GroupPermissionDao implements Dao {
return mapper(dbSession).countGroupsByPermissionQuery(query);
}

public List<GroupRoleDto> selectGroupPermissionsByGroupNamesAndProject(DbSession dbSession, List<String> groupNames, @Nullable Long projectId) {
public List<GroupPermissionDto> selectGroupPermissionsByGroupNamesAndProject(DbSession dbSession, List<String> groupNames, @Nullable Long projectId) {
return executeLargeInputs(groupNames, groups -> mapper(dbSession).selectGroupPermissionByGroupNames(groups, projectId));
}


sonar-db/src/main/java/org/sonar/db/user/GroupRoleDto.java → sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionDto.java View File

@@ -17,28 +17,18 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.sonar.db.user;
package org.sonar.db.permission;

import javax.annotation.Nullable;

/**
* @since 3.2
*/
public class GroupRoleDto {
private Long id;
public class GroupPermissionDto {
private Long groupId;
private Long resourceId;
private String role;

public Long getId() {
return id;
}

public GroupRoleDto setId(Long id) {
this.id = id;
return this;
}

public Long getGroupId() {
return groupId;
}
@@ -46,7 +36,7 @@ public class GroupRoleDto {
/**
* Null when Anyone
*/
public GroupRoleDto setGroupId(@Nullable Long groupId) {
public GroupPermissionDto setGroupId(@Nullable Long groupId) {
this.groupId = groupId;
return this;
}
@@ -56,7 +46,7 @@ public class GroupRoleDto {
return resourceId;
}

public GroupRoleDto setResourceId(@Nullable Long resourceId) {
public GroupPermissionDto setResourceId(@Nullable Long resourceId) {
this.resourceId = resourceId;
return this;
}
@@ -65,7 +55,7 @@ public class GroupRoleDto {
return role;
}

public GroupRoleDto setRole(String role) {
public GroupPermissionDto setRole(String role) {
this.role = role;
return this;
}

+ 1
- 2
sonar-db/src/main/java/org/sonar/db/permission/GroupPermissionMapper.java View File

@@ -25,7 +25,6 @@ import javax.annotation.Nullable;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.ResultHandler;
import org.apache.ibatis.session.RowBounds;
import org.sonar.db.user.GroupRoleDto;

public interface GroupPermissionMapper {

@@ -35,7 +34,7 @@ public interface GroupPermissionMapper {

int countGroupsByPermissionQuery(@Param("query") PermissionQuery query);

List<GroupRoleDto> selectGroupPermissionByGroupNames(@Param("groupNames") List<String> groupNames, @Nullable @Param("projectId") Long projectId);
List<GroupPermissionDto> selectGroupPermissionByGroupNames(@Param("groupNames") List<String> groupNames, @Nullable @Param("projectId") Long projectId);

void groupsCountByProjectIdAndPermission(Map<String, Object> parameters, ResultHandler resultHandler);
}

+ 2
- 3
sonar-db/src/main/java/org/sonar/db/permission/PermissionRepository.java View File

@@ -37,7 +37,6 @@ 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 org.sonar.db.user.GroupRoleDto;

import static org.sonar.api.security.DefaultGroups.isAnyone;

@@ -86,7 +85,7 @@ public class PermissionRepository {
* @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) {
GroupRoleDto groupRole = new GroupRoleDto()
GroupPermissionDto groupRole = new GroupPermissionDto()
.setRole(permission)
.setGroupId(groupId)
.setResourceId(resourceId);
@@ -112,7 +111,7 @@ public class PermissionRepository {
}

public void deleteGroupPermission(@Nullable Long resourceId, @Nullable Long groupId, String permission, DbSession session) {
GroupRoleDto groupRole = new GroupRoleDto()
GroupPermissionDto groupRole = new GroupPermissionDto()
.setRole(permission)
.setGroupId(groupId)
.setResourceId(resourceId);

+ 8
- 7
sonar-db/src/main/java/org/sonar/db/user/RoleDao.java View File

@@ -24,6 +24,7 @@ import javax.annotation.Nullable;
import org.sonar.api.security.DefaultGroups;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;
import org.sonar.db.permission.GroupPermissionDto;

public class RoleDao implements Dao {

@@ -36,24 +37,24 @@ public class RoleDao implements Dao {
return session.getMapper(RoleMapper.class).selectGroupPermissions(groupName, resourceId, DefaultGroups.isAnyone(groupName));
}

public void insertGroupRole(DbSession session, GroupRoleDto groupRole) {
mapper(session).insertGroupRole(groupRole);
public void insertGroupRole(DbSession session, GroupPermissionDto dto) {
mapper(session).insertGroupRole(dto);
}

/**
* @deprecated replaced by {@link org.sonar.db.permission.UserPermissionDao#insert(DbSession, org.sonar.db.permission.UserPermissionDto)}
*/
@Deprecated
public void insertUserRole(DbSession session, UserPermissionDto userRole) {
mapper(session).insertUserRole(userRole);
public void insertUserRole(DbSession session, UserPermissionDto dto) {
mapper(session).insertUserRole(dto);
}

public void deleteGroupRole(GroupRoleDto groupRole, DbSession session) {
public void deleteGroupRole(GroupPermissionDto groupRole, DbSession session) {
mapper(session).deleteGroupRole(groupRole);
}

public void deleteGroupRolesByResourceId(DbSession session, Long resourceId) {
mapper(session).deleteGroupRolesByResourceId(resourceId);
public void deleteGroupRolesByResourceId(DbSession session, long projectId) {
mapper(session).deleteGroupRolesByResourceId(projectId);
}

private int countResourceGroupRoles(DbSession session, Long resourceId) {

+ 5
- 4
sonar-db/src/main/java/org/sonar/db/user/RoleMapper.java View File

@@ -22,6 +22,7 @@ package org.sonar.db.user;
import java.util.List;
import javax.annotation.Nullable;
import org.apache.ibatis.annotations.Param;
import org.sonar.db.permission.GroupPermissionDto;

/**
* @since 3.2
@@ -35,13 +36,13 @@ public interface RoleMapper {
*/
List<String> selectGroupPermissions(@Param("groupName") String groupName, @Nullable @Param("resourceId") Long resourceId, @Param("isAnyOneGroup") Boolean isAnyOneGroup);

void insertGroupRole(GroupRoleDto groupRole);
void insertGroupRole(GroupPermissionDto dto);

void insertUserRole(UserPermissionDto userRole);
void insertUserRole(UserPermissionDto dto);

void deleteGroupRole(GroupRoleDto groupRole);
void deleteGroupRole(GroupPermissionDto dto);

void deleteGroupRolesByResourceId(Long resourceId);
void deleteGroupRolesByResourceId(long projectId);

int countResourceGroupRoles(Long resourceId);


+ 1
- 1
sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml View File

@@ -105,7 +105,7 @@
</where>
</sql>

<select id="selectGroupPermissionByGroupNames" parameterType="map" resultType="GroupRole">
<select id="selectGroupPermissionByGroupNames" parameterType="map" resultType="GroupPermission">
SELECT sub.id, sub.groupId, sub.resourceId, sub.role
FROM
(

+ 1
- 1
sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml View File

@@ -49,7 +49,7 @@
</where>
</select>

<insert id="insertGroupRole" parameterType="GroupRole" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
<insert id="insertGroupRole" parameterType="GroupPermission" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
INSERT INTO group_roles (group_id, resource_id, role)
VALUES (#{groupId}, #{resourceId}, #{role})
</insert>

+ 6
- 7
sonar-db/src/test/java/org/sonar/db/permission/GroupPermissionDaoTest.java View File

@@ -33,7 +33,6 @@ 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 org.sonar.db.user.GroupRoleDto;

import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -224,17 +223,17 @@ public class GroupPermissionDaoTest {
permissionDb.addGlobalPermissionToGroup(PROVISIONING, null);

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-1"), null))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(tuple(group1.getId(), SCAN_EXECUTION, null));

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-2"), null)).isEmpty();

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-3"), null))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(tuple(group3.getId(), SYSTEM_ADMIN, null));

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Anyone"), null))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(
tuple(0L, SCAN_EXECUTION, null),
tuple(0L, PROVISIONING, null));
@@ -263,15 +262,15 @@ public class GroupPermissionDaoTest {
assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-1"), project.getId())).isEmpty();

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-2"), project.getId()))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(tuple(group2.getId(), USER, project.getId()));

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-3"), project.getId()))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(tuple(group3.getId(), USER, project.getId()));

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Anyone"), project.getId()))
.extracting(GroupRoleDto::getGroupId, GroupRoleDto::getRole, GroupRoleDto::getResourceId)
.extracting(GroupPermissionDto::getGroupId, GroupPermissionDto::getRole, GroupPermissionDto::getResourceId)
.containsOnly(tuple(0L, PROVISIONING, project.getId()));

assertThat(underTest.selectGroupPermissionsByGroupNamesAndProject(dbSession, asList("Group-1", "Group-2", "Anyone"), project.getId())).hasSize(2);

+ 2
- 3
sonar-db/src/test/java/org/sonar/db/permission/PermissionDbTester.java View File

@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.user.GroupRoleDto;
import org.sonar.db.user.UserPermissionDto;

public class PermissionDbTester {
@@ -46,7 +45,7 @@ public class PermissionDbTester {
}

public void addProjectPermissionToGroup(String permission, @Nullable Long groupId, long componentId) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setGroupId(groupId)
.setResourceId(componentId));
@@ -54,7 +53,7 @@ public class PermissionDbTester {
}

public void addGlobalPermissionToGroup(String permission, @Nullable Long groupId) {
dbClient.roleDao().insertGroupRole(dbSession, new GroupRoleDto()
dbClient.roleDao().insertGroupRole(dbSession, new GroupPermissionDto()
.setRole(permission)
.setGroupId(groupId));
db.commit();

+ 11
- 10
sonar-db/src/test/java/org/sonar/db/user/RoleDaoTest.java View File

@@ -29,6 +29,7 @@ import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.permission.GroupPermissionDto;

import static org.assertj.core.api.Assertions.assertThat;

@@ -62,22 +63,22 @@ public class RoleDaoTest {
public void select_group_permissions_by_permission_and_user_id() {
long userId = 11L;

underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.ADMIN).setGroupId(1L).setResourceId(2L));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(1L).setResourceId(2L));
groupDb.addUserToGroup(userId, 1L);
underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.ADMIN).setGroupId(2L).setResourceId(3L));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(2L).setResourceId(3L));
groupDb.addUserToGroup(userId, 2L);
// global permission - not returned
groupDb.addUserToGroup(userId, 3L);
underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.ADMIN).setGroupId(3L).setResourceId(null));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(3L).setResourceId(null));
// project permission on another user id - not returned
underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.ADMIN).setGroupId(4L).setResourceId(4L));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(4L).setResourceId(4L));
groupDb.addUserToGroup(12L, 4L);
// project permission on another permission - not returned
underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.USER).setGroupId(5L).setResourceId(5L));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.USER).setGroupId(5L).setResourceId(5L));
groupDb.addUserToGroup(userId, 5L);
// duplicates on resource id - should be returned once
underTest.insertUserRole(dbSession, new UserPermissionDto().setPermission(UserRole.ADMIN).setUserId(userId).setComponentId(2L));
underTest.insertGroupRole(dbSession, new GroupRoleDto().setRole(UserRole.ADMIN).setGroupId(3L).setResourceId(3L));
underTest.insertGroupRole(dbSession, new GroupPermissionDto().setRole(UserRole.ADMIN).setGroupId(3L).setResourceId(3L));
db.commit();

List<Long> result = underTest.selectComponentIdsByPermissionAndUserId(dbSession, UserRole.ADMIN, userId);
@@ -111,7 +112,7 @@ public class RoleDaoTest {
public void delete_global_group_permission() {
db.prepareDbUnit(getClass(), "globalGroupPermissions.xml");

GroupRoleDto groupRoleToDelete = new GroupRoleDto().setGroupId(100L).setRole(GlobalPermissions.QUALITY_PROFILE_ADMIN);
GroupPermissionDto groupRoleToDelete = new GroupPermissionDto().setGroupId(100L).setRole(GlobalPermissions.QUALITY_PROFILE_ADMIN);

underTest.deleteGroupRole(groupRoleToDelete, db.getSession());
db.getSession().commit();
@@ -123,7 +124,7 @@ public class RoleDaoTest {
public void delete_resource_group_permission() {
db.prepareDbUnit(getClass(), "resourceGroupPermissions.xml");

GroupRoleDto groupRoleToDelete = new GroupRoleDto().setGroupId(100L).setRole(UserRole.CODEVIEWER).setResourceId(1L);
GroupPermissionDto groupRoleToDelete = new GroupPermissionDto().setGroupId(100L).setRole(UserRole.CODEVIEWER).setResourceId(1L);

underTest.deleteGroupRole(groupRoleToDelete, db.getSession());
db.getSession().commit();
@@ -192,7 +193,7 @@ public class RoleDaoTest {
dbClient.userGroupDao().insert(db.getSession(), new UserGroupDto()
.setGroupId(group.getId())
.setUserId(user.getId()));
dbClient.roleDao().insertGroupRole(db.getSession(), new GroupRoleDto()
dbClient.roleDao().insertGroupRole(db.getSession(), new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(GlobalPermissions.SYSTEM_ADMIN));

@@ -212,7 +213,7 @@ public class RoleDaoTest {
dbClient.userGroupDao().insert(db.getSession(), new UserGroupDto()
.setGroupId(group.getId())
.setUserId(user.getId()));
dbClient.roleDao().insertGroupRole(db.getSession(), new GroupRoleDto()
dbClient.roleDao().insertGroupRole(db.getSession(), new GroupPermissionDto()
.setGroupId(group.getId())
.setRole(GlobalPermissions.SYSTEM_ADMIN));
dbClient.roleDao().insertUserRole(db.getSession(), new UserPermissionDto()

+ 3
- 2
sonar-db/src/test/java/org/sonar/db/user/RoleMapperTest.java View File

@@ -23,6 +23,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.permission.GroupPermissionDto;

import static org.assertj.core.api.Assertions.assertThat;

@@ -56,8 +57,8 @@ public class RoleMapperTest {
dbTester.prepareDbUnit(getClass(), "insertRoles.xml");

RoleMapper mapper = dbTester.getSession().getMapper(RoleMapper.class);
mapper.insertGroupRole(new GroupRoleDto().setRole("admin").setGroupId(100L).setResourceId(123L));
mapper.insertGroupRole(new GroupRoleDto().setRole("user").setResourceId(123L));// Anyone
mapper.insertGroupRole(new GroupPermissionDto().setRole("admin").setGroupId(100L).setResourceId(123L));
mapper.insertGroupRole(new GroupPermissionDto().setRole("user").setResourceId(123L));// Anyone
dbTester.getSession().commit();

dbTester.assertDbUnit(getClass(), "insertRoles-result.xml", "group_roles");

Loading…
Cancel
Save