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 a2815c328..62f173179 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
@@ -794,7 +794,7 @@ public class DataManagementPlanManager {
});
UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId());
sendNotification(dmp, user, NotificationType.DMP_PUBLISH);
- this.createZenodoDoi(dmp.getId(), principal, null);
+ this.createZenodoDoi(dmp.getId(), principal, null, true);
}
public void makeFinalize(UUID id, Principal principal, DatasetsToBeFinalized datasetsToBeFinalized) throws Exception {
@@ -1606,6 +1606,10 @@ public class DataManagementPlanManager {
}
public String createZenodoDoi(UUID id, Principal principal, ConfigLoader configLoader) throws Exception {
+ return this.createZenodoDoi(id, principal, configLoader, false);
+ }
+
+ public String createZenodoDoi(UUID id, Principal principal, ConfigLoader configLoader, boolean update) throws Exception {
DMP dmp = this.apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(id);
if (!isUserOwnerOfDmp(dmp, principal))
throw new Exception("User is not authorized to invoke this action");
@@ -1635,9 +1639,16 @@ public class DataManagementPlanManager {
dataBuilder.append(" \"publication_type\": \"datamanagementplan\",\n");
dataBuilder.append(" \"description\": \"").append((dmp.getDescription() != null && !dmp.getDescription().isEmpty() ? dmp.getDescription() : "
")).append("\",\n");
dataBuilder.append(" \"version\": \"").append(dmp.getVersion()).append("\",\n");
- dataBuilder.append(" \"related_identifiers\": [{\n");
- dataBuilder.append(" \t\t\"identifier\": \"").append((this.environment.getProperty("dmp.domain") + "/explore-plans/publicOverview/" + id.toString())).append("\",\n");
- dataBuilder.append(" \t\t\"relation\": \"isIdenticalTo\"}],\n");
+ dataBuilder.append(" \"access_right\": \"");
+ if (dmp.isPublic()) {
+ dataBuilder.append("open\",\n");
+ dataBuilder.append(" \"related_identifiers\": [{\n");
+ dataBuilder.append(" \t\t\"identifier\": \"").append((this.environment.getProperty("dmp.domain") + "/external/zenodo/" + id.toString())).append("\",\n");
+ dataBuilder.append(" \t\t\"relation\": \"isIdenticalTo\"}],\n");
+ } else {
+ dataBuilder.append("restricted\",\n");
+ dataBuilder.append(" \"access_conditions\": \"\",\n");
+ }
dataBuilder.append(" \"contributors\": [");
int i = 0;
for(UserDMP userDMP: dmp.getUsers()) {
@@ -1731,33 +1742,46 @@ public class DataManagementPlanManager {
throw e;
}
}
+ else {
+ String listUrl = this.environment.getProperty("zenodo.url") + "deposit/depositions" + "?q=conceptdoi:\"" + previousDOI + "\"&access_token=" + zenodoToken;
+ ResponseEntity