From b2a407d90e5ab02e4a32b6d0f0b314b157a5b2c5 Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Fri, 21 Jun 2019 17:47:06 +0300 Subject: [PATCH] Fixes bug where one could edit Finalized DMP. --- .../eu/eudat/logic/managers/DataManagementPlanManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index 6ae8aad7a..be81240d1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -397,6 +397,11 @@ public class DataManagementPlanManager { public void createOrUpdate(ApiContext apiContext, DataManagementPlanEditorModel dataManagementPlan, Principal principal) throws Exception { + DMP dmp1 = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(dataManagementPlan.getId()); + if (dmp1.getStatus().equals(DMP.DMPStatus.FINALISED.getValue())) { + throw new Exception("DMP is finalized, therefore cannot be edited."); + } + DMP newDmp = dataManagementPlan.toDataModel(); UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId()); @@ -406,8 +411,6 @@ public class DataManagementPlanManager { try { DMP dmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(dataManagementPlan.getId()); - if (dmp.getStatus().equals(DMP.DMPStatus.FINALISED.getValue())) - newDmp.setStatus(DMP.DMPStatus.FINALISED.getValue()); newDmp.setCreated(dmp.getCreated()); if (dmp.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId()) .collect(Collectors.toList()).size() == 0) {