private void insertProjectPermissionOnGroup(DbSession dbSession, ComponentDto component, String permission, Integer groupId) { dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto() .setOrganizationUuid(component.getOrganizationUuid()) .setResourceId(component.getId()) .setGroupId(groupId) .setRole(permission)); }
private static void ensureGroupPermissionConsistency(DbSession dbSession, GroupPermissionDto dto) { if (dto.getGroupId() == null) { return; } GroupMapper groupMapper = dbSession.getMapper(GroupMapper.class); checkArgument( groupMapper.countGroupByOrganizationAndId(dto.getOrganizationUuid(), dto.getGroupId()) == 1, "Can't insert permission '%s' for group with id '%s' in organization with uuid '%s' because this group does not belong to organization with uuid '%s'", dto.getRole(), dto.getGroupId(), dto.getOrganizationUuid(), dto.getOrganizationUuid()); }
private void copySonarUsersGroupPermissionsToMembersGroup(DbSession dbSession, String defaultOrganizationUuid, GroupDto sonarUsersGroup, GroupDto membersGroup) { dbClient.groupPermissionDao().selectAllPermissionsByGroupId(dbSession, defaultOrganizationUuid, sonarUsersGroup.getId(), context -> { GroupPermissionDto groupPermissionDto = (GroupPermissionDto) context.getResultObject(); dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto().setOrganizationUuid(defaultOrganizationUuid).setGroupId(membersGroup.getId()) .setRole(groupPermissionDto.getRole()) .setResourceId(groupPermissionDto.getResourceId())); }); }
private static void ensureComponentPermissionConsistency(DbSession dbSession, GroupPermissionDto dto) { if (dto.getResourceId() == null) { return; } ComponentMapper componentMapper = dbSession.getMapper(ComponentMapper.class); checkArgument( componentMapper.countComponentByOrganizationAndId(dto.getOrganizationUuid(), dto.getResourceId()) == 1, "Can't insert permission '%s' for component with id '%s' in organization with uuid '%s' because this component does not belong to organization with uuid '%s'", dto.getRole(), dto.getResourceId(), dto.getOrganizationUuid(), dto.getOrganizationUuid()); }
private static WsGroupsResponse buildResponse(List<GroupDto> groups, List<GroupPermissionDto> groupPermissions, Paging paging) { Multimap<Integer, String> permissionsByGroupId = TreeMultimap.create(); groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getRole())); WsGroupsResponse.Builder response = WsGroupsResponse.newBuilder(); groups.forEach(group -> { Group.Builder wsGroup = response.addGroupsBuilder() .setName(group.getName()); if (group.getId() != 0) { wsGroup.setId(String.valueOf(group.getId())); } ofNullable(group.getDescription()).ifPresent(wsGroup::setDescription); wsGroup.addAllPermissions(permissionsByGroupId.get(group.getId())); }); response.getPagingBuilder() .setPageIndex(paging.pageIndex()) .setPageSize(paging.pageSize()) .setTotal(paging.total()); return response.build(); }
private static void ensureComponentPermissionConsistency(DbSession dbSession, GroupPermissionDto dto) { if (dto.getResourceId() == null) { return; } ComponentMapper componentMapper = dbSession.getMapper(ComponentMapper.class); checkArgument( componentMapper.countComponentByOrganizationAndId(dto.getOrganizationUuid(), dto.getResourceId()) == 1, "Can't insert permission '%s' for component with id '%s' in organization with uuid '%s' because this component does not belong to organization with uuid '%s'", dto.getRole(), dto.getResourceId(), dto.getOrganizationUuid(), dto.getOrganizationUuid()); }
private static WsGroupsResponse buildResponse(List<GroupDto> groups, List<GroupPermissionDto> groupPermissions, Paging paging) { Multimap<Integer, String> permissionsByGroupId = TreeMultimap.create(); groupPermissions.forEach(groupPermission -> permissionsByGroupId.put(groupPermission.getGroupId(), groupPermission.getRole())); WsGroupsResponse.Builder response = WsGroupsResponse.newBuilder(); groups.forEach(group -> { Group.Builder wsGroup = response.addGroupsBuilder() .setName(group.getName()); if (group.getId() != 0) { wsGroup.setId(String.valueOf(group.getId())); } setNullable(group.getDescription(), wsGroup::setDescription); wsGroup.addAllPermissions(permissionsByGroupId.get(group.getId())); }); response.getPagingBuilder() .setPageIndex(paging.pageIndex()) .setPageSize(paging.pageSize()) .setTotal(paging.total()); return response.build(); }
private void addPermissionToGroup(DbSession dbSession, GroupDto group, OrganizationPermission permission) { dbClient.groupPermissionDao().insert( dbSession, new GroupPermissionDto() .setOrganizationUuid(group.getOrganizationUuid()) .setGroupId(group.getId()) .setRole(permission.getKey())); }
private void copySonarUsersGroupPermissionsToMembersGroup(DbSession dbSession, GroupDto sonarUsersGroup, GroupDto membersGroup) { String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid(); dbClient.groupPermissionDao().selectAllPermissionsByGroupId(dbSession, defaultOrganizationUuid, sonarUsersGroup.getId(), context -> { GroupPermissionDto groupPermissionDto = (GroupPermissionDto) context.getResultObject(); dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto().setOrganizationUuid(defaultOrganizationUuid).setGroupId(membersGroup.getId()) .setRole(groupPermissionDto.getRole()) .setResourceId(groupPermissionDto.getResourceId())); }); }
private static void ensureGroupPermissionConsistency(DbSession dbSession, GroupPermissionDto dto) { if (dto.getGroupId() == null) { return; } GroupMapper groupMapper = dbSession.getMapper(GroupMapper.class); checkArgument( groupMapper.countGroupByOrganizationAndId(dto.getOrganizationUuid(), dto.getGroupId()) == 1, "Can't insert permission '%s' for group with id '%s' in organization with uuid '%s' because this group does not belong to organization with uuid '%s'", dto.getRole(), dto.getGroupId(), dto.getOrganizationUuid(), dto.getOrganizationUuid()); }
private boolean addPermission(DbSession dbSession, GroupPermissionChange change) { if (loadExistingPermissions(dbSession, change).contains(change.getPermission())) { return false; } validateNotAnyoneAndAdminPermission(change.getPermission(), change.getGroupIdOrAnyone()); GroupPermissionDto addedDto = new GroupPermissionDto() .setRole(change.getPermission()) .setOrganizationUuid(change.getOrganizationUuid()) .setGroupId(change.getGroupIdOrAnyone().getId()) .setResourceId(change.getNullableProjectId()); dbClient.groupPermissionDao().insert(dbSession, addedDto); return true; }
private void unsafeInsertProjectPermissionOnAnyone(String perm, ComponentDto project) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(project.getOrganizationUuid()) .setGroupId(null) .setRole(perm) .setResourceId(project.getId()); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); } }
private void grantPermissionToAnyone(ComponentDto project, String permission) { dbClient.groupPermissionDao().insert(session, new GroupPermissionDto() .setOrganizationUuid(project.getOrganizationUuid()) .setGroupId(null) .setResourceId(project.getId()) .setRole(permission)); session.commit(); userSession.logIn().addProjectPermission(permission, project); }
private void unsafeInsertProjectPermissionOnAnyone(String perm) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(privateProject.getOrganizationUuid()) .setGroupId(null) .setRole(perm) .setResourceId(privateProject.getId()); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); } }
private void unsafeInsertProjectPermissionOnAnyone(ComponentDto component, String permission) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(component.getOrganizationUuid()) .setGroupId(null) .setRole(permission) .setResourceId(component.getId()); dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto); dbTester.commit(); }
public GroupPermissionDto insertPermissionOnAnyone(OrganizationDto org, String permission) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(org.getUuid()) .setGroupId(null) .setRole(permission); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); return dto; }
private void unsafeInsertProjectPermissionOnGroup(ComponentDto component, GroupDto group, String permission) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(group.getOrganizationUuid()) .setGroupId(group.getId()) .setRole(permission) .setResourceId(component.getId()); dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto); dbTester.commit(); }
public GroupPermissionDto insertPermissionOnGroup(GroupDto group, String permission) { GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(group.getOrganizationUuid()) .setGroupId(group.getId()) .setRole(permission); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); return dto; }
public GroupPermissionDto insertProjectPermissionOnAnyone(String permission, ComponentDto project) { checkArgument(!project.isPrivate(), "No permission to group AnyOne can be granted on a private project"); checkArgument(!PUBLIC_PERMISSIONS.contains(permission), "permission %s can't be granted on a public project", permission); checkArgument(project.getMainBranchProjectUuid() == null, "Permissions can't be granted on branches"); GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(project.getOrganizationUuid()) .setGroupId(null) .setRole(permission) .setResourceId(project.getId()); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); return dto; }
public GroupPermissionDto insertProjectPermissionOnGroup(GroupDto group, String permission, ComponentDto project) { checkArgument(group.getOrganizationUuid().equals(project.getOrganizationUuid()), "Different organizations"); checkArgument(project.isPrivate() || !PUBLIC_PERMISSIONS.contains(permission), "%s can't be granted on a public project", permission); checkArgument(project.getMainBranchProjectUuid() == null, "Permissions can't be granted on branches"); GroupPermissionDto dto = new GroupPermissionDto() .setOrganizationUuid(group.getOrganizationUuid()) .setGroupId(group.getId()) .setRole(permission) .setResourceId(project.getId()); db.getDbClient().groupPermissionDao().insert(db.getSession(), dto); db.commit(); return dto; }