@@ -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(); | |||
} |
@@ -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(); | |||
@@ -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(); | |||
} |
@@ -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); | |||
} |
@@ -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) { |
@@ -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())); |
@@ -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())); |
@@ -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)); |
@@ -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; | |||
} |
@@ -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)); | |||
} | |||
} | |||
@@ -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())); | |||
} |
@@ -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(); |
@@ -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); |
@@ -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); |
@@ -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)); | |||
} | |||
@@ -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; | |||
} |
@@ -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); | |||
} |
@@ -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); |
@@ -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) { |
@@ -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); | |||
@@ -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 | |||
( |
@@ -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> |
@@ -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); |
@@ -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(); |
@@ -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() |
@@ -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"); |