use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class AttachmentRepository method vacuumAttachmentDB.
public RequestSummary vacuumAttachmentDB(User user, final Set<String> usedIds) {
final RequestSummary requestSummary = new RequestSummary();
if (!PermissionUtils.isAdmin(user))
return requestSummary.setRequestStatus(RequestStatus.FAILURE);
final List<AttachmentContent> allAttachmentContents = getAll();
final Set<AttachmentContent> unusedAttachmentContents = allAttachmentContents.stream().filter(input -> !usedIds.contains(input.getId())).collect(Collectors.toSet());
requestSummary.setTotalElements(allAttachmentContents.size());
requestSummary.setTotalAffectedElements(unusedAttachmentContents.size());
final List<DocumentOperationResult> documentOperationResults = deleteBulk(unusedAttachmentContents);
if (documentOperationResults.isEmpty()) {
requestSummary.setRequestStatus(RequestStatus.SUCCESS);
} else {
requestSummary.setRequestStatus(RequestStatus.FAILURE);
}
return requestSummary;
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class AttachmentHandlerTest method testVacuum_AllIdsUsedIsNoop.
@Test
public void testVacuum_AllIdsUsedIsNoop() throws Exception {
final RequestSummary requestSummary = handler.vacuumAttachmentDB(new User("a", "a", "a").setUserGroup(UserGroup.ADMIN), ImmutableSet.of("A1", "A2"));
assertThat(requestSummary.requestStatus, is(RequestStatus.SUCCESS));
assertThat(requestSummary.totalElements, is(2));
assertThat(requestSummary.totalAffectedElements, is(0));
final AttachmentContent a1 = handler.getAttachmentContent("A1");
assertNotNull(a1);
final AttachmentContent a2 = handler.getAttachmentContent("A2");
assertNotNull(a2);
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ProjectDatabaseHandler method releaseIdToProjects.
private void releaseIdToProjects(Project project, User user, Set<String> visitedProjectIds, Multimap<String, ProjectWithReleaseRelationTuple> releaseIdToProjects) throws SW360Exception {
if (nothingTodo(project, visitedProjectIds))
return;
nullToEmptyMap(project.getReleaseIdToUsage()).forEach((releaseId, relation) -> {
releaseIdToProjects.put(releaseId, new ProjectWithReleaseRelationTuple(project, relation));
});
Map<String, ProjectRelationship> linkedProjects = project.getLinkedProjects();
if (linkedProjects != null) {
for (String projectId : linkedProjects.keySet()) {
if (visitedProjectIds.contains(projectId))
continue;
Project linkedProject = getProjectById(projectId, user);
releaseIdToProjects(linkedProject, user, visitedProjectIds, releaseIdToProjects);
}
}
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ProjectDatabaseHandler method getReleaseIdsOfProjectTree.
private Set<String> getReleaseIdsOfProjectTree(Project project, Set<String> visitedProjectIds, Map<String, Project> allProjectsIdMap, User user, List<RequestedAction> permissionsFilter) {
// no need to visit a project twice
if (visitedProjectIds.contains(project.getId())) {
return Collections.emptySet();
}
// we are now checking this project so no need for further examination in
// recursion
visitedProjectIds.add(project.getId());
// container to aggregate results
Set<String> releaseIds = Sets.newHashSet();
// "DUPLICATE" and add the result to this result
if (project.isSetLinkedProjects()) {
project.getLinkedProjects().entrySet().stream().forEach(e -> {
if (!ProjectRelationship.REFERRED.equals(e.getValue()) && !ProjectRelationship.DUPLICATE.equals(e.getValue())) {
Project childProject = allProjectsIdMap.get(e.getKey());
if (childProject != null) {
// so do it now
if (permissionsFilter == null || permissionsFilter.isEmpty() || makePermission(childProject, user).areActionsAllowed(permissionsFilter)) {
// recursion inside :-)
releaseIds.addAll(getReleaseIdsOfProjectTree(childProject, visitedProjectIds, allProjectsIdMap, user, permissionsFilter));
}
}
}
});
}
// add own releases to result if they are not just "REFERRED"
if (project.isSetReleaseIdToUsage()) {
project.getReleaseIdToUsage().entrySet().stream().forEach(e -> {
if (!ReleaseRelationship.REFERRED.equals(e.getValue().getReleaseRelation())) {
releaseIds.add(e.getKey());
}
});
}
return releaseIds;
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ProjectDatabaseHandler method fillClearingStateSummary.
public List<Project> fillClearingStateSummary(List<Project> projects, User user) {
Function<Project, Set<String>> extractReleaseIds = project -> CommonUtils.nullToEmptyMap(project.getReleaseIdToUsage()).keySet();
Set<String> allReleaseIds = projects.stream().map(extractReleaseIds).reduce(Sets.newHashSet(), Sets::union);
if (!allReleaseIds.isEmpty()) {
Map<String, Release> releasesById = ThriftUtils.getIdMap(componentDatabaseHandler.getReleasesForClearingStateSummary(allReleaseIds));
for (Project project : projects) {
final Set<String> releaseIds = extractReleaseIds.apply(project);
List<Release> releases = releaseIds.stream().map(releasesById::get).collect(Collectors.toList());
final ReleaseClearingStateSummary releaseClearingStateSummary = ReleaseClearingStateSummaryComputer.computeReleaseClearingStateSummary(releases, project.getClearingTeam());
project.setReleaseClearingStateSummary(releaseClearingStateSummary);
}
}
return projects;
}
Aggregations