use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ComponentPortlet method generateComponentMergeWizardStep0Response.
private void generateComponentMergeWizardStep0Response(ActionRequest request, JsonGenerator jsonGenerator) throws IOException, TException {
User sessionUser = UserCacheHolder.getUserFromRequest(request);
ComponentService.Iface cClient = thriftClients.makeComponentClient();
List<Component> componentSummary = cClient.getComponentSummary(sessionUser);
jsonGenerator.writeStartObject();
jsonGenerator.writeArrayFieldStart("components");
componentSummary.stream().forEach(component -> {
try {
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("id", component.getId());
jsonGenerator.writeStringField("name", SW360Utils.printName(component));
jsonGenerator.writeStringField("createdBy", component.getCreatedBy());
jsonGenerator.writeNumberField("releases", component.getReleaseIdsSize());
jsonGenerator.writeEndObject();
} catch (IOException e) {
log.error("An error occurred while generating wizard response", e);
}
});
jsonGenerator.writeEndArray();
jsonGenerator.writeEndObject();
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ComponentPortlet method generateComponentMergeWizardStep3Response.
private void generateComponentMergeWizardStep3Response(ActionRequest request, JsonGenerator jsonGenerator) throws IOException, TException {
ObjectMapper om = new ObjectMapper();
ComponentService.Iface cClient = thriftClients.makeComponentClient();
// extract request data
User sessionUser = UserCacheHolder.getUserFromRequest(request);
Component componentSelection = om.readValue(request.getParameter(COMPONENT_SELECTION), Component.class);
String componentSourceId = request.getParameter(COMPONENT_SOURCE_ID);
// perform the real merge, update merge target and delete merge source
RequestStatus status = cClient.mergeComponents(componentSelection.getId(), componentSourceId, componentSelection, sessionUser);
// generate redirect url
LiferayPortletURL componentUrl = createDetailLinkTemplate(request);
componentUrl.setParameter(PortalConstants.PAGENAME, PortalConstants.PAGENAME_DETAIL);
componentUrl.setParameter(PortalConstants.COMPONENT_ID, componentSelection.getId());
// write response JSON
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("redirectUrl", componentUrl.toString());
if (status == RequestStatus.IN_USE) {
jsonGenerator.writeStringField("error", "Cannot merge when one of the components has an active moderation request.");
} else if (status == RequestStatus.FAILURE) {
jsonGenerator.writeStringField("error", "You do not have sufficient permissions.");
}
jsonGenerator.writeEndObject();
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ComponentPortlet method prepareReleaseDetailView.
private void prepareReleaseDetailView(RenderRequest request, RenderResponse response) throws PortletException {
String id = request.getParameter(COMPONENT_ID);
String releaseId = request.getParameter(RELEASE_ID);
final User user = UserCacheHolder.getUserFromRequest(request);
if (isNullOrEmpty(id) && isNullOrEmpty(releaseId)) {
throw new PortletException("Component or Release ID not set!");
}
try {
ComponentService.Iface client = thriftClients.makeComponentClient();
Component component;
Release release = null;
if (!isNullOrEmpty(releaseId)) {
release = client.getReleaseById(releaseId, user);
request.setAttribute(RELEASE_ID, releaseId);
request.setAttribute(RELEASE, release);
request.setAttribute(DOCUMENT_ID, releaseId);
request.setAttribute(DOCUMENT_TYPE, SW360Constants.TYPE_RELEASE);
setAttachmentsInRequest(request, release.getAttachments());
setUsingDocs(request, releaseId, user, client);
putDirectlyLinkedReleaseRelationsInRequest(request, release);
if (isNullOrEmpty(id)) {
id = release.getComponentId();
}
putVulnerabilitiesInRequestRelease(request, releaseId, user);
request.setAttribute(VULNERABILITY_VERIFICATION_EDITABLE, PermissionUtils.isUserAtLeast(UserGroup.SECURITY_ADMIN, user));
}
component = client.getComponentById(id, user);
request.setAttribute(COMPONENT, component);
addComponentBreadcrumb(request, response, component);
if (release != null) {
addReleaseBreadcrumb(request, response, release);
}
} catch (TException e) {
log.error("Error fetching release from backend!", e);
setSW360SessionError(request, ErrorMessages.ERROR_GETTING_RELEASE);
}
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class ComponentPortlet method updateRelease.
@UsedAsLiferayAction
public void updateRelease(ActionRequest request, ActionResponse response) throws PortletException, IOException {
String id = request.getParameter(COMPONENT_ID);
final User user = UserCacheHolder.getUserFromRequest(request);
if (id != null) {
try {
ComponentService.Iface client = thriftClients.makeComponentClient();
Component component = client.getComponentById(id, user);
Release release;
String releaseId = request.getParameter(RELEASE_ID);
if (releaseId != null) {
release = client.getReleaseByIdForEdit(releaseId, user);
ComponentPortletUtils.updateReleaseFromRequest(request, release);
String ModerationRequestCommentMsg = request.getParameter(MODERATION_REQUEST_COMMENT);
user.setCommentMadeDuringModerationRequest(ModerationRequestCommentMsg);
RequestStatus requestStatus = client.updateRelease(release, user);
setSessionMessage(request, requestStatus, "Release", "update", printName(release));
cleanUploadHistory(user.getEmail(), releaseId);
response.setRenderParameter(PAGENAME, PAGENAME_RELEASE_DETAIL);
response.setRenderParameter(COMPONENT_ID, request.getParameter(COMPONENT_ID));
response.setRenderParameter(RELEASE_ID, request.getParameter(RELEASE_ID));
} else {
release = new Release();
release.setComponentId(component.getId());
release.setClearingState(ClearingState.NEW_CLEARING);
ComponentPortletUtils.updateReleaseFromRequest(request, release);
AddDocumentRequestSummary summary = client.addRelease(release, user);
AddDocumentRequestStatus status = summary.getRequestStatus();
switch(status) {
case SUCCESS:
response.setRenderParameter(RELEASE_ID, summary.getId());
String successMsg = "Release " + printName(release) + " added successfully";
SessionMessages.add(request, "request_processed", successMsg);
response.setRenderParameter(PAGENAME, PAGENAME_EDIT_RELEASE);
break;
case DUPLICATE:
setSW360SessionError(request, ErrorMessages.RELEASE_DUPLICATE);
response.setRenderParameter(PAGENAME, PAGENAME_EDIT_RELEASE);
prepareRequestForReleaseEditAfterDuplicateError(request, release);
break;
default:
setSW360SessionError(request, ErrorMessages.RELEASE_NOT_ADDED);
response.setRenderParameter(PAGENAME, PAGENAME_DETAIL);
}
response.setRenderParameter(COMPONENT_ID, request.getParameter(COMPONENT_ID));
}
} catch (TException e) {
log.error("Error fetching release from backend!", e);
}
}
}
use of org.eclipse.sw360.datahandler.thrift.users.User in project sw360portal by sw360.
the class RecentComponentPortlet method doView.
@Override
public void doView(RenderRequest request, RenderResponse response) throws IOException, PortletException {
List<Component> components = null;
User user = UserCacheHolder.getUserFromRequest(request);
try {
components = thriftClients.makeComponentClient().getRecentComponentsSummary(5, user);
} catch (TException e) {
log.error("Could not fetch recent components from backend", e);
}
request.setAttribute("components", CommonUtils.nullToEmptyList(components));
super.doView(request, response);
}
Aggregations