|
|
|
@ -151,8 +151,11 @@ public class DataManagementPlanManager {
|
|
|
|
|
items = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (items == null) {
|
|
|
|
|
items = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(dataManagementPlanTableRequest.getCriteria());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<Integer> roles = new LinkedList<>();
|
|
|
|
|
if (!dataManagementPlanTableRequest.getCriteria().isOnlyPublic()) {
|
|
|
|
|
if (dataManagementPlanTableRequest.getCriteria().getRole() != null)
|
|
|
|
@ -161,8 +164,11 @@ public class DataManagementPlanManager {
|
|
|
|
|
} else {
|
|
|
|
|
authItems = items;
|
|
|
|
|
}
|
|
|
|
|
if (items == null) {
|
|
|
|
|
totalData = authItems.count();
|
|
|
|
|
items = PaginationManager.applyPaging(authItems, dataManagementPlanTableRequest);
|
|
|
|
|
} else {
|
|
|
|
|
items = authItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -534,6 +540,10 @@ public class DataManagementPlanManager {
|
|
|
|
|
if (dataManagementPlan.getAssociatedUsers().size() == 0)
|
|
|
|
|
assignUser(newDmp, user);
|
|
|
|
|
|
|
|
|
|
UUID dmpId = newDmp.getId();
|
|
|
|
|
Set<UserDMP> users = new HashSet<>(databaseRepository.getUserDmpDao().asQueryable().where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList());
|
|
|
|
|
newDmp.setUsers(users);
|
|
|
|
|
|
|
|
|
|
this.updateIndex(newDmp);
|
|
|
|
|
|
|
|
|
|
if (setNotification) {
|
|
|
|
@ -625,13 +635,16 @@ public class DataManagementPlanManager {
|
|
|
|
|
assignGrandUserIfInternal(newDmp, user);
|
|
|
|
|
assignFunderUserIfInternal(newDmp, user);
|
|
|
|
|
assignProjectUserIfInternal(newDmp, user);
|
|
|
|
|
if (newDmp.getGrant().getStartdate() == null) {
|
|
|
|
|
newDmp.getGrant().setStartdate(new Date());
|
|
|
|
|
}
|
|
|
|
|
if (newDmp.getGrant().getEnddate() == null) {
|
|
|
|
|
newDmp.getGrant().setEnddate(Date.from(Instant.now().plus(365, ChronoUnit.DAYS)));
|
|
|
|
|
}
|
|
|
|
|
databaseRepository.getGrantDao().createOrUpdate(newDmp.getGrant());
|
|
|
|
|
DMP tempDmp = databaseRepository.getDmpDao().createOrUpdate(newDmp);
|
|
|
|
|
newDmp.setId(tempDmp.getId());
|
|
|
|
|
|
|
|
|
|
// Assign creator.
|
|
|
|
|
assignUser(newDmp, user);
|
|
|
|
|
|
|
|
|
|
copyDatasets(newDmp, databaseRepository.getDatasetDao());
|
|
|
|
|
|
|
|
|
|
databaseRepository
|
|
|
|
@ -797,6 +810,12 @@ public class DataManagementPlanManager {
|
|
|
|
|
else {
|
|
|
|
|
grant.setType(Grant.GrantType.EXTERNAL.getValue());
|
|
|
|
|
grant.setCreationUser(null);
|
|
|
|
|
if (grant.getStartdate() == null) {
|
|
|
|
|
grant.setStartdate(new Date());
|
|
|
|
|
}
|
|
|
|
|
if (grant.getEnddate() == null) {
|
|
|
|
|
grant.setEnddate(Date.from(Instant.now().plus(365, ChronoUnit.DAYS)));
|
|
|
|
|
}
|
|
|
|
|
grantDao.createOrUpdate(grant);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1749,7 +1768,16 @@ public class DataManagementPlanManager {
|
|
|
|
|
userDMP.setDmp(dmp);
|
|
|
|
|
userDMP.setUser(userInfo);
|
|
|
|
|
userDMP.setRole(role.getValue());
|
|
|
|
|
databaseRepository.getUserDmpDao().createOrUpdate(userDMP);
|
|
|
|
|
userDMP = databaseRepository.getUserDmpDao().createOrUpdate(userDMP);
|
|
|
|
|
logger.debug("UserDMP Id: " + userDMP.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean userExists(UserDMP userDMP, UserInfo userInfo, UserDMP.UserDMPRoles role) {
|
|
|
|
|
UserDMP tempUser = userDMP;
|
|
|
|
|
if (userDMP.getUser() == null) {
|
|
|
|
|
tempUser = databaseRepository.getUserDmpDao().find(userDMP.getId());
|
|
|
|
|
}
|
|
|
|
|
return tempUser.getUser().getId().equals(userInfo.getId()) && tempUser.getRole().equals(role.getValue());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void clearUsers(DMP dmp) {
|
|
|
|
@ -2147,7 +2175,9 @@ public class DataManagementPlanManager {
|
|
|
|
|
jsonFos.flush();
|
|
|
|
|
}
|
|
|
|
|
fileSystemResource = new FileSystemResource(tempJsonFile);
|
|
|
|
|
addFileMapRequest = new HttpEntity<>(fileSystemResource, null);
|
|
|
|
|
HttpHeaders jsonHeaders = new HttpHeaders();
|
|
|
|
|
jsonHeaders.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
|
|
|
|
addFileMapRequest = new HttpEntity<>(fileSystemResource, jsonHeaders);
|
|
|
|
|
String jsonFileName = jsonFile.getHeaders().get("Content-Disposition").get(0).substring(jsonFile.getHeaders().get("Content-Disposition").get(0).lastIndexOf('=') + 1);
|
|
|
|
|
addFileUrl = links.get("bucket") + "/" + jsonFileName + "?access_token=" + zenodoToken;
|
|
|
|
|
restTemplate.put(addFileUrl, addFileMapRequest);
|
|
|
|
|