From 738fdd6541a657bbc65aaf49a8eec297d5c660e8 Mon Sep 17 00:00:00 2001 From: Nikolas Sepos Date: Thu, 18 Apr 2019 11:29:57 +0300 Subject: [PATCH] feat(licenses): add support for project-only obligations This change introduces a new portlet for managing TODOs under the Admin menu. There are 2 views. One for listing TODOs saved in the database and one for adding a new one. In the listing view, the delete action is also available but can only be executed by users with SW360_ADMIN rights and above. This new PrivatePages.lar includes the TODOs management portlet. Signed-off-by: Nikolas Sepos --- .../sw360/licenses/LicenseHandler.java | 7 + .../licenses/db/LicenseDatabaseHandler.java | 28 +++- frontend/configuration/PrivatePages.lar | Bin 92108 -> 108710 bytes .../sw360/portal/common/PortalConstants.java | 8 ++ .../portal/portlets/admin/TodoPortlet.java | 108 ++++++++++++++ .../components/ComponentPortletUtils.java | 11 ++ .../sw360/portal/tags/CompareTodos.java | 2 +- .../main/webapp/WEB-INF/liferay-display.xml | 1 + .../main/webapp/WEB-INF/liferay-portlet.xml | 11 ++ .../src/main/webapp/WEB-INF/portlet.xml | 25 ++++ .../src/main/webapp/html/admin/todos/add.jsp | 100 +++++++++++++ .../src/main/webapp/html/admin/todos/view.jsp | 135 ++++++++++++++++++ .../sw360/exporter/utils/ConvertRecord.java | 30 ++-- .../sw360/exporter/utils/TypeMappings.java | 2 +- .../exporter/utils/ConvertRecordTest.java | 14 +- .../datahandler/thrift/ThriftValidate.java | 2 +- .../src/main/thrift/licenses.thrift | 6 +- .../src/main/thrift/sw360.thrift | 3 +- 18 files changed, 458 insertions(+), 35 deletions(-) create mode 100644 frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/admin/TodoPortlet.java create mode 100644 frontend/sw360-portlet/src/main/webapp/html/admin/todos/add.jsp create mode 100644 frontend/sw360-portlet/src/main/webapp/html/admin/todos/view.jsp diff --git a/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/LicenseHandler.java b/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/LicenseHandler.java index f80a7fc561..5969ac8fa9 100644 --- a/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/LicenseHandler.java +++ b/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/LicenseHandler.java @@ -319,4 +319,11 @@ public RequestSummary importAllSpdxLicenses(User user) throws TException { return handler.importAllSpdxLicenses(user); } + @Override + public RequestStatus deleteTodo(String id, User user) throws TException { + assertId(id); + assertUser(user); + return handler.deleteTodo(id, user); + } + } diff --git a/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/db/LicenseDatabaseHandler.java b/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/db/LicenseDatabaseHandler.java index d20ab4994f..c83f4d9e4f 100644 --- a/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/db/LicenseDatabaseHandler.java +++ b/backend/src/src-licenses/src/main/java/org/eclipse/sw360/licenses/db/LicenseDatabaseHandler.java @@ -27,6 +27,7 @@ import org.eclipse.sw360.datahandler.thrift.moderation.ModerationRequest; import org.eclipse.sw360.datahandler.thrift.users.RequestedAction; import org.eclipse.sw360.datahandler.thrift.users.User; +import org.eclipse.sw360.datahandler.thrift.users.UserGroup; import org.eclipse.sw360.licenses.tools.SpdxConnector; import org.apache.log4j.Logger; @@ -43,7 +44,6 @@ import static org.eclipse.sw360.datahandler.common.SW360Assert.assertNotNull; import static org.eclipse.sw360.datahandler.permissions.PermissionUtils.makePermission; import static org.eclipse.sw360.datahandler.thrift.ThriftValidate.*; -import static org.eclipse.sw360.datahandler.thrift.users.UserGroup.CLEARING_ADMIN; /** * Class for accessing the CouchDB database @@ -222,7 +222,7 @@ private void fillLicenseForOrganisation(String organisation, License license) { * @return ID of the added todo. */ public String addTodo(@NotNull Todo todo, User user) throws SW360Exception { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } prepareTodo(todo); @@ -533,7 +533,7 @@ private List getLicenseTypesFromLicenses(List licenses) { } public List addRiskCategories(List riskCategories, User user) throws SW360Exception { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } for (RiskCategory riskCategory : riskCategories) { @@ -547,7 +547,7 @@ public List addRiskCategories(List riskCategories, U } public List addRisks(List risks, User user) throws SW360Exception { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } for (Risk risk : risks) { @@ -561,7 +561,7 @@ public List addRisks(List risks, User user) throws SW360Exception { } public List addLicenseTypes(List licenseTypes, User user) { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } final List documentOperationResults = licenseTypeRepository.executeBulk(licenseTypes); @@ -605,7 +605,7 @@ public List addOrOverwriteLicenses(List licenses, User user, b } public List addObligations(List obligations, User user) throws SW360Exception { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } for (Obligation obligation : obligations) { @@ -619,7 +619,7 @@ public List addObligations(List obligations, User user) } public List addTodos(List todos, User user) throws SW360Exception { - if (!PermissionUtils.isUserAtLeast(CLEARING_ADMIN, user)){ + if (!PermissionUtils.isUserAtLeast(UserGroup.CLEARING_ADMIN, user)){ return null; } for (Todo todo : todos) { @@ -897,4 +897,18 @@ public RequestSummary importAllSpdxLicenses(User user) { .setTotalElements(spdxIds.size()) .setRequestStatus(RequestStatus.SUCCESS); } + + public RequestStatus deleteTodo(String id, User user) throws SW360Exception { + Todo todo = todoRepository.get(id); + assertNotNull(todo); + + // Remove the license if the user is allowed to do it by himself + if (PermissionUtils.isUserAtLeast(UserGroup.SW360_ADMIN, user)) { + todoRepository.remove(todo); + return RequestStatus.SUCCESS; + } else { + log.error(user + " does not have the permission to delete todo."); + return RequestStatus.ACCESS_DENIED; + } + } } diff --git a/frontend/configuration/PrivatePages.lar b/frontend/configuration/PrivatePages.lar index b042315726ff4550bef1d5cece6d019a37a1b4c4..b5c15110cea93d160618de00acc70c65be9891e0 100644 GIT binary patch literal 108710 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 diff --git a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/common/PortalConstants.java b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/common/PortalConstants.java index 9ca4704300..226bc6a7de 100644 --- a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/common/PortalConstants.java +++ b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/common/PortalConstants.java @@ -58,6 +58,7 @@ public class PortalConstants { public static final String PAGENAME_DETAIL = "detail"; public static final String PAGENAME_VIEW = "view"; public static final String PAGENAME_IMPORT = "import"; + public static final String PAGENAME_ADD = "add"; public static final String PAGENAME_EDIT = "edit"; public static final String PAGENAME_ACTION = "action"; public static final String PAGENAME_DUPLICATE = "duplicate"; @@ -126,6 +127,10 @@ public class PortalConstants { public static final String VENDOR_ID = "vendorId"; public static final String VENDOR_LIST = "vendorList"; + //! Specialized keys for todos + public static final String TODO_LIST = "todoList"; + public static final String TODO_ID = "todoId"; + //! Specialized keys for attachments public static final String ATTACHMENTS = "attachments"; public static final String SPDX_ATTACHMENTS = "spdxAttachments"; @@ -341,6 +346,9 @@ public class PortalConstants { // vendor actions public static final String REMOVE_VENDOR = "remove_vendor"; + // todo actions + public static final String REMOVE_TODO = "removeTodo"; + // user actions public static final String USER_PREFIX = "user"; public static final String USER_SEARCH = USER_PREFIX + "search"; diff --git a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/admin/TodoPortlet.java b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/admin/TodoPortlet.java new file mode 100644 index 0000000000..576b215893 --- /dev/null +++ b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/admin/TodoPortlet.java @@ -0,0 +1,108 @@ +/* + * Copyright Siemens AG, 2013-2015. Part of the SW360 Portal Project. + * + * SPDX-License-Identifier: EPL-1.0 + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ +package org.eclipse.sw360.portal.portlets.admin; + +import org.apache.log4j.Logger; +import org.apache.thrift.TException; +import org.eclipse.sw360.datahandler.permissions.PermissionUtils; +import org.eclipse.sw360.datahandler.thrift.RequestStatus; +import org.eclipse.sw360.datahandler.thrift.licenses.LicenseService; +import org.eclipse.sw360.datahandler.thrift.licenses.Todo; +import org.eclipse.sw360.datahandler.thrift.users.User; +import org.eclipse.sw360.datahandler.thrift.users.UserGroup; +import org.eclipse.sw360.portal.common.UsedAsLiferayAction; +import org.eclipse.sw360.portal.portlets.Sw360Portlet; +import org.eclipse.sw360.portal.portlets.components.ComponentPortletUtils; +import org.eclipse.sw360.portal.users.UserCacheHolder; + +import javax.portlet.*; +import java.io.IOException; +import java.util.Collections; +import java.util.List; + +import static org.eclipse.sw360.portal.common.PortalConstants.*; + +/** + * Todo portlet implementation + * + * @author nikolas@endocode.com + */ +public class TodoPortlet extends Sw360Portlet { + + private static final Logger log = Logger.getLogger(TodoPortlet.class); + + + //! Serve resource and helpers + @Override + public void serveResource(ResourceRequest request, ResourceResponse response) { + + final String id = request.getParameter("id"); + final User user = UserCacheHolder.getUserFromRequest(request); + + LicenseService.Iface licenseClient = thriftClients.makeLicenseClient(); + + + try { + RequestStatus status = licenseClient.deleteTodo(id, user); + renderRequestStatus(request,response, status); + } catch (TException e) { + log.error("Error deleting todo", e); + renderRequestStatus(request,response, RequestStatus.FAILURE); + } + } + + + //! VIEW and helpers + @Override + public void doView(RenderRequest request, RenderResponse response) throws IOException, PortletException { + + + String pageName = request.getParameter(PAGENAME); + if (PAGENAME_ADD.equals(pageName)) { + include("/html/admin/todos/add.jsp", request, response); + } else { + prepareStandardView(request); + super.doView(request, response); + } + } + + private void prepareStandardView(RenderRequest request) { + List todoList; + try { + final User user = UserCacheHolder.getUserFromRequest(request); + LicenseService.Iface licenseClient = thriftClients.makeLicenseClient(); + + todoList = licenseClient.getTodos(); + + } catch (TException e) { + log.error("Could not get Todos from backend ", e); + todoList = Collections.emptyList(); + } + + request.setAttribute(TODO_LIST, todoList); + } + + @UsedAsLiferayAction + public void addTodo(ActionRequest request, ActionResponse response) { + + final Todo todo = new Todo(); + ComponentPortletUtils.updateTodoFromRequest(request, todo); + + try { + LicenseService.Iface licenseClient = thriftClients.makeLicenseClient(); + final User user = UserCacheHolder.getUserFromRequest(request); + + licenseClient.addTodo(todo, user); + } catch (TException e) { + log.error("Error adding todo", e); + } + } +} diff --git a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/components/ComponentPortletUtils.java b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/components/ComponentPortletUtils.java index 721c250d97..a54159188e 100644 --- a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/components/ComponentPortletUtils.java +++ b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/components/ComponentPortletUtils.java @@ -15,6 +15,7 @@ import org.eclipse.sw360.datahandler.common.SW360Utils; import org.eclipse.sw360.datahandler.thrift.*; import org.eclipse.sw360.datahandler.thrift.components.*; +import org.eclipse.sw360.datahandler.thrift.licenses.Todo; import org.eclipse.sw360.datahandler.thrift.users.RequestedAction; import org.eclipse.sw360.datahandler.thrift.users.User; import org.eclipse.sw360.datahandler.thrift.vendors.Vendor; @@ -148,6 +149,12 @@ public static void updateVendorFromRequest(PortletRequest request, Vendor vendor setFieldValue(request, vendor, Vendor._Fields.URL); } + public static void updateTodoFromRequest(PortletRequest request, Todo todo) { + setFieldValue(request, todo, Todo._Fields.TITLE); + setFieldValue(request, todo, Todo._Fields.TEXT); + setFieldValue(request, todo, Todo._Fields.VALID_FOR_PROJECT); + } + private static void updateLinkedReleaseFromRequest(PortletRequest request, Map linkedReleases) { linkedReleases.clear(); String[] ids = request.getParameterValues(Release._Fields.RELEASE_ID_TO_RELATIONSHIP.toString() + ReleaseLink._Fields.ID.toString()); @@ -186,6 +193,10 @@ private static void setFieldValue(PortletRequest request, Vendor vendor, Vendor. PortletUtils.setFieldValue(request, vendor, field, Vendor.metaDataMap.get(field), ""); } + private static void setFieldValue(PortletRequest request, Todo todo, Todo._Fields field) { + PortletUtils.setFieldValue(request, todo, field, Todo.metaDataMap.get(field), ""); + } + public static RequestStatus deleteRelease(PortletRequest request, Logger log) { String releaseId = request.getParameter(PortalConstants.RELEASE_ID); if (releaseId != null) { diff --git a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/tags/CompareTodos.java b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/tags/CompareTodos.java index 7c7330d0de..d715df52f0 100644 --- a/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/tags/CompareTodos.java +++ b/frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/tags/CompareTodos.java @@ -188,7 +188,7 @@ private static boolean isFieldRelevant(Todo._Fields field) { case REVISION: case TYPE: case OBLIGATION_DATABASE_IDS: - case TODO_ID: + case TITLE: case DEVELOPMENT_STRING: case DISTRIBUTION_STRING: case WHITELIST: diff --git a/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-display.xml b/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-display.xml index cecef4f774..dce4e8c7b7 100644 --- a/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-display.xml +++ b/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-display.xml @@ -15,6 +15,7 @@ + diff --git a/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-portlet.xml b/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-portlet.xml index 5381ae11bd..d534b5d878 100644 --- a/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-portlet.xml +++ b/frontend/sw360-portlet/src/main/webapp/WEB-INF/liferay-portlet.xml @@ -112,6 +112,17 @@ /js/main.js + + todos + /icon.png + false + false + /css/main.css + /css/print.css + /css/tooltips.css + /js/main.js + + projects /icon.png diff --git a/frontend/sw360-portlet/src/main/webapp/WEB-INF/portlet.xml b/frontend/sw360-portlet/src/main/webapp/WEB-INF/portlet.xml index 6ef0331999..3625af148d 100644 --- a/frontend/sw360-portlet/src/main/webapp/WEB-INF/portlet.xml +++ b/frontend/sw360-portlet/src/main/webapp/WEB-INF/portlet.xml @@ -656,6 +656,31 @@ + + todos + TODOs + + org.eclipse.sw360.portal.portlets.admin.TodoPortlet + + + view-template + /html/admin/todos/view.jsp + + 0 + + text/html + view + + + TODOs + TODOs + + + + administrator + + + signup Sign-Up diff --git a/frontend/sw360-portlet/src/main/webapp/html/admin/todos/add.jsp b/frontend/sw360-portlet/src/main/webapp/html/admin/todos/add.jsp new file mode 100644 index 0000000000..4909993592 --- /dev/null +++ b/frontend/sw360-portlet/src/main/webapp/html/admin/todos/add.jsp @@ -0,0 +1,100 @@ +<%-- + ~ Copyright Siemens AG, 2013-2017. Part of the SW360 Portal Project. + ~ + ~ SPDX-License-Identifier: EPL-1.0 + ~ + ~ All rights reserved. This program and the accompanying materials + ~ are made available under the terms of the Eclipse Public License v1.0 + ~ which accompanies this distribution, and is available at + ~ http://www.eclipse.org/legal/epl-v10.html + --%> +<%@ page import="org.eclipse.sw360.portal.common.PortalConstants" %> +<%@include file="/html/init.jsp"%> +<%-- the following is needed by liferay to display error messages--%> +<%@include file="/html/utils/includes/errorKeyToMessage.jspf"%> + + + +<%@ page import="javax.portlet.PortletRequest" %> +<%@ page import="com.liferay.portlet.PortletURLFactoryUtil" %> +<%@ page import="org.eclipse.sw360.datahandler.thrift.licenses.Todo" %> + + + + + + + + + + + + + + + + + + + + +

+ +
+ +
+ +
+ + + + + + + + + + + + + + + + +
Add TODO
+ + + + + + + + +
+ + +
+ + +
+ + diff --git a/frontend/sw360-portlet/src/main/webapp/html/admin/todos/view.jsp b/frontend/sw360-portlet/src/main/webapp/html/admin/todos/view.jsp new file mode 100644 index 0000000000..f5ebfc29c8 --- /dev/null +++ b/frontend/sw360-portlet/src/main/webapp/html/admin/todos/view.jsp @@ -0,0 +1,135 @@ +<%-- + ~ Copyright Siemens AG, 2013-2017. Part of the SW360 Portal Project. + ~ + ~ SPDX-License-Identifier: EPL-1.0 + ~ + ~ All rights reserved. This program and the accompanying materials + ~ are made available under the terms of the Eclipse Public License v1.0 + ~ which accompanies this distribution, and is available at + ~ http://www.eclipse.org/legal/epl-v10.html + --%> +<%@ page import="org.eclipse.sw360.portal.common.PortalConstants" %> + +<%@ include file="/html/init.jsp" %> +<%-- the following is needed by liferay to display error messages--%> +<%@ include file="/html/utils/includes/errorKeyToMessage.jspf"%> + + + + + + + + + + + + + + + + + + + + + + + + +
+ <%@ include file="/html/utils/includes/quickfilter.jspf" %> +
+
+ + + + + + +
+
+ + + +<%--for javascript library loading --%> +<%@ include file="/html/utils/includes/requirejs.jspf" %> + diff --git a/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/ConvertRecord.java b/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/ConvertRecord.java index cb81bb85f8..5ad6cbee0c 100644 --- a/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/ConvertRecord.java +++ b/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/ConvertRecord.java @@ -21,9 +21,6 @@ import org.eclipse.sw360.datahandler.common.CommonUtils; import org.eclipse.sw360.datahandler.thrift.licenses.*; import org.apache.commons.csv.CSVRecord; -import org.apache.log4j.Logger; -import org.apache.thrift.TException; -import org.eclipse.sw360.datahandler.thrift.users.User; import org.eclipse.sw360.datahandler.common.ThriftEnumUtils; import org.eclipse.sw360.datahandler.thrift.Ternary; import org.jetbrains.annotations.NotNull; @@ -169,13 +166,13 @@ private static boolean isValidPropertyRecord(CSVRecord record){ return true; } - public static void fillTodoCustomPropertyInfo(List todos, List customProperties, SetMultimap todoCustomPropertyMap) { + public static void fillTodoCustomPropertyInfo(List todos, List customProperties, SetMultimap todoCustomPropertyMap) { int nextPropertyId = 0; for(Todo todo : todos){ if(todo.isSetCustomPropertyToValue()){ for(Map.Entry entry : todo.getCustomPropertyToValue().entrySet()){ customProperties.add(new PropertyWithValueAndId(nextPropertyId, entry.getKey(), entry.getValue())); - todoCustomPropertyMap.put(todo.getTodoId(), nextPropertyId); + todoCustomPropertyMap.put(todo.getId(), nextPropertyId); nextPropertyId++; } } @@ -210,10 +207,13 @@ public static List convertTodos(List records) { for (CSVRecord record : records) { if (record.size() < 2) break; - String id = record.get(0); + + String title = record.get(0); String text = record.get(1); - Todo todo = new Todo().setTodoId(Integer.parseInt(id)).setText(text); + Todo todo = new Todo(); + todo.setTitle(title); + todo.setText(text); // Parse boolean values @@ -249,7 +249,7 @@ public Function> transformer() { final ArrayList out = new ArrayList<>(5); - out.add(((Integer) todo.getTodoId()).toString()); + out.add(todo.getTitle()); out.add(todo.getText()); out.add(((Boolean) todo.isDevelopment()).toString()); out.add(((Boolean) todo.isDistribution()).toString()); @@ -263,7 +263,7 @@ public Function> transformer() { @Override public List headers() { - return ImmutableList.of("ID", "Text", "Development", "Distribution", "External IDs"); + return ImmutableList.of("Title", "Text", "Development", "Distribution", "External IDs"); } }; } @@ -541,13 +541,13 @@ private static boolean parseBoolean(String string) { } @NotNull - public static SetMultimap getTodoToObligationMap(List todos) { - SetMultimap obligationTodo = HashMultimap.create(); + public static SetMultimap getTodoToObligationMap(List todos) { + SetMultimap obligationTodo = HashMultimap.create(); for (Todo todo : todos) { if (todo.isSetObligations()) { for (Obligation obligation : todo.getObligations()) { - obligationTodo.put(obligation.getObligationId(), todo.getTodoId()); + obligationTodo.put(obligation.getObligationId(), todo.getId()); } } } @@ -555,13 +555,13 @@ public static SetMultimap getTodoToObligationMap(List to } @NotNull - public static SetMultimap getLicenseToTodoMap(List licenses) { - SetMultimap licenseToTodo = HashMultimap.create(); + public static SetMultimap getLicenseToTodoMap(List licenses) { + SetMultimap licenseToTodo = HashMultimap.create(); for (License license : licenses) { if (license.isSetTodos()) { for (Todo todo : license.getTodos()) { - licenseToTodo.put(license.getId(), todo.getTodoId()); + licenseToTodo.put(license.getId(), todo.getId()); } } } diff --git a/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/TypeMappings.java b/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/TypeMappings.java index 5ba06b865b..99a20d923e 100644 --- a/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/TypeMappings.java +++ b/libraries/exporters/src/main/java/org/eclipse/sw360/exporter/utils/TypeMappings.java @@ -72,7 +72,7 @@ public static Function getTodoIdentifier() { return new Function() { @Override public Integer apply(Todo input) { - return input.getTodoId(); + return -1; } }; } diff --git a/libraries/exporters/src/test/java/org/eclipse/sw360/exporter/utils/ConvertRecordTest.java b/libraries/exporters/src/test/java/org/eclipse/sw360/exporter/utils/ConvertRecordTest.java index 345a9b8ac1..65508d3f24 100644 --- a/libraries/exporters/src/test/java/org/eclipse/sw360/exporter/utils/ConvertRecordTest.java +++ b/libraries/exporters/src/test/java/org/eclipse/sw360/exporter/utils/ConvertRecordTest.java @@ -70,16 +70,16 @@ public void prepare() { String full = "headers\n 1,A,A1 \n 2,A,A2 \n 3,A,A3 \n 4,B,B1 \n 5,B,B2"; fullRecord = readToRecord(full); - String fullTodo = "header \n '1','text1','true','true' \n '2','text2','false','false', '{\"key\": \"value\"}'"; + String fullTodo = "header \n 'title1','text1','true','true' \n 'title2','text2','false','false', '{\"key\": \"value\"}'"; fullTodoRecord = readToRecord(fullTodo); Map todoCustomProperties1 = new HashMap<>(); todoCustomProperties1.put("A", "A1"); - Todo todo1 = new Todo().setTodoId(1).setCustomPropertyToValue(todoCustomProperties1); + Todo todo1 = new Todo().setId("1").setCustomPropertyToValue(todoCustomProperties1); Map todoCustomProperties2 = new HashMap<>(); todoCustomProperties2.put("A", "A2"); todoCustomProperties2.put("C", "C2"); - Todo todo2 = new Todo().setTodoId(2).setCustomPropertyToValue(todoCustomProperties2); + Todo todo2 = new Todo().setId("2").setCustomPropertyToValue(todoCustomProperties2); todos = Arrays.asList(todo1, todo2); } @@ -179,7 +179,7 @@ public void testConvertCustomPropertiesByIdFull() throws Exception { @Test public void testFillTodoCustomPropertyInfoEmpty() throws Exception { List customProperties = new ArrayList<>(); - SetMultimap todoCustomPropertyMap = HashMultimap.create(); + SetMultimap todoCustomPropertyMap = HashMultimap.create(); fillTodoCustomPropertyInfo(Collections.EMPTY_LIST, customProperties, todoCustomPropertyMap); assertThat(customProperties.size(), is(0)); assertThat(todoCustomPropertyMap.size(), is(0)); @@ -188,11 +188,11 @@ public void testFillTodoCustomPropertyInfoEmpty() throws Exception { @Test public void testFillTodoCustomPropertyInfoFull() throws Exception { List customProperties = new ArrayList<>(); - SetMultimap todoCustomPropertyMap = HashMultimap.create(); + SetMultimap todoCustomPropertyMap = HashMultimap.create(); fillTodoCustomPropertyInfo(todos, customProperties, todoCustomPropertyMap); assertThat(customProperties.size(), is(3)); assertThat(todoCustomPropertyMap.size(), is(3)); - int id = todoCustomPropertyMap.get(1).stream().findFirst().get(); + int id = todoCustomPropertyMap.get("1").stream().findFirst().get(); assertThat(customProperties.get(id).getProperty(), is("A")); assertThat(customProperties.get(id).getValue(), is("A1")); } @@ -208,11 +208,9 @@ public void testConvertTodosFull() throws Exception { List todos = convertTodos(fullTodoRecord); assertThat(todos.size(), is(2)); assertThat(todos.get(0).getText(), is("text1")); - assertThat(todos.get(0).getTodoId(), is(1)); assertThat(todos.get(0).isDevelopment(), is(true)); assertThat(todos.get(0).isDistribution(), is(true)); assertThat(todos.get(1).getText(), is("text2")); - assertThat(todos.get(1).getTodoId(), is(2)); assertThat(todos.get(1).isDevelopment(), is(false)); assertThat(todos.get(1).isDistribution(), is(false)); assertThat(todos.get(1).getExternalIds().size(), is(1)); diff --git a/libraries/lib-datahandler/src/main/java/org/eclipse/sw360/datahandler/thrift/ThriftValidate.java b/libraries/lib-datahandler/src/main/java/org/eclipse/sw360/datahandler/thrift/ThriftValidate.java index b32939a44b..6fe7f00b52 100644 --- a/libraries/lib-datahandler/src/main/java/org/eclipse/sw360/datahandler/thrift/ThriftValidate.java +++ b/libraries/lib-datahandler/src/main/java/org/eclipse/sw360/datahandler/thrift/ThriftValidate.java @@ -58,7 +58,7 @@ public static void prepareTodo(Todo todo) throws SW360Exception { // Check required fields assertNotNull(todo); assertNotEmpty(todo.getText()); - assertNotNull(todo.getTodoId()); + assertNotNull(todo.getTitle()); if (todo.isSetObligations() && !todo.isSetObligationDatabaseIds()) { for (Obligation obligation : todo.getObligations()) { diff --git a/libraries/lib-datahandler/src/main/thrift/licenses.thrift b/libraries/lib-datahandler/src/main/thrift/licenses.thrift index 323df2118a..a1a0a474ca 100644 --- a/libraries/lib-datahandler/src/main/thrift/licenses.thrift +++ b/libraries/lib-datahandler/src/main/thrift/licenses.thrift @@ -41,7 +41,7 @@ struct Todo { 7: optional bool distribution, 8: optional list obligations, 9: optional set obligationDatabaseIds, - 10: required i32 todoId, + 10: optional string title, 11: optional map customPropertyToValue, // These two are a quick fix to receiving booleans in PHP not working at the moment @@ -305,4 +305,8 @@ service LicenseService { RequestSummary deleteAllLicenseInformation(1: User user); RequestSummary importAllSpdxLicenses(1: User user); + /** + * delete todo from database if user has permissions + **/ + RequestStatus deleteTodo(1: string id, 2: User user); } diff --git a/libraries/lib-datahandler/src/main/thrift/sw360.thrift b/libraries/lib-datahandler/src/main/thrift/sw360.thrift index 0935bf6db8..f79706e9e9 100644 --- a/libraries/lib-datahandler/src/main/thrift/sw360.thrift +++ b/libraries/lib-datahandler/src/main/thrift/sw360.thrift @@ -23,10 +23,11 @@ enum RequestStatus { SUCCESS = 0, SENT_TO_MODERATOR = 1, FAILURE = 2, - IN_USE=3, + IN_USE = 3, FAILED_SANITY_CHECK = 4, DUPLICATE = 5, DUPLICATE_ATTACHMENT = 6, + ACCESS_DENIED = 7, } enum RemoveModeratorRequestStatus {