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; }