From ebfde3e99293a3b05e5e462f464f9c188a7f337d Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Mon, 13 May 2019 13:30:35 +0300 Subject: [PATCH] Fixes bug on create Dmp not saving the role on the Database. --- .../logic/managers/DataManagementPlanManager.java | 5 +++++ .../services/utilities/InvitationServiceImpl.java | 2 +- .../eudat/models/data/dmp/DataManagementPlan.java | 14 ++++++++------ 3 files changed, 14 insertions(+), 7 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 ff2f20ab2..7b9555121 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 @@ -341,6 +341,11 @@ public class DataManagementPlanManager { UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId()); createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao(), user); newDmp.setCreator(user); + List users = new ArrayList<>(); + UserDMP userDMP = new UserDMP(); + userDMP.setUser(user); + users.add(userDMP); + newDmp.setUsers(new HashSet<>(users)); newDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp); if (dataManagementPlan.getStatus() == DMP.DMPStatus.FINALISED.getValue()) { apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao() diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java index 72bf72fea..6668fb3cd 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/InvitationServiceImpl.java @@ -45,7 +45,7 @@ public class InvitationServiceImpl implements InvitationService { @Override public void assignToDmp(DMPDao dmpDao, eu.eudat.data.entities.UserDMP user, DMP dmp) { - if (!dmp.getUsers().stream().map(x -> x.getId()).collect(Collectors.toList()).contains(user.getId())) { + if (!dmp.getUsers().stream().map(x -> x.getUser().getId()).collect(Collectors.toList()).contains(user.getId())) { dmp.getUsers().add(user); dmpDao.createOrUpdate(dmp); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlan.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlan.java index fce6b2968..55c571266 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlan.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/DataManagementPlan.java @@ -274,14 +274,16 @@ public class DataManagementPlan implements DataModel { if (this.dynamicFields != null) dataManagementPlanEntity.setDmpProperties(JSONObject.toJSONString(this.dynamicFields.stream().filter(item -> item.getValue() != null).collect(Collectors.toMap(DynamicFieldWithValue::getId, DynamicFieldWithValue::getValue)))); - List userDMPList = new LinkedList<>(); - for(UserListingModel userListingModel: this.associatedUsers) { - UserDMP userDMP = new UserDMP(); - userDMP.setUser(userListingModel.toDataModel()); - userDMPList.add(userDMP); + if (this.associatedUsers != null && !this.associatedUsers.isEmpty()) { + List userDMPList = new LinkedList<>(); + for(UserListingModel userListingModel: this.associatedUsers) { + UserDMP userDMP = new UserDMP(); + userDMP.setUser(userListingModel.toDataModel()); + userDMPList.add(userDMP); + } + dataManagementPlanEntity.setUsers((Set) userDMPList); } - dataManagementPlanEntity.setUsers((Set) userDMPList); return dataManagementPlanEntity; }