Refactors DMP creator to use the intermediate table from database and not the column.
This commit is contained in:
parent
71604b0ae1
commit
175a1e0747
|
@ -102,7 +102,7 @@ public class DataManagementPlanManager {
|
|||
item.setDataset(
|
||||
item.getDataset().stream()
|
||||
.filter(ds -> !ds.getStatus().equals(Dataset.Status.DELETED.getValue())).collect(Collectors.toList()).stream()
|
||||
.filter(dataset -> dataset.getDmp().getCreator().getId().equals(principalID)
|
||||
.filter(dataset -> dataset.getDmp().getUsers().stream().filter(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser().getId().equals(principalID)
|
||||
|| dataset.isPublic()
|
||||
|| dataset.getDmp().getUsers().stream()
|
||||
.filter(x -> x.getUser().getId().equals(principalID))
|
||||
|
@ -270,7 +270,7 @@ public class DataManagementPlanManager {
|
|||
|
||||
public eu.eudat.models.data.dmp.DataManagementPlan getSingle(String id, Principal principal, DynamicProjectConfiguration dynamicProjectConfiguration) throws InstantiationException, IllegalAccessException {
|
||||
DMP dataManagementPlanEntity = databaseRepository.getDmpDao().find(UUID.fromString(id));
|
||||
if (dataManagementPlanEntity.getCreator().getId() != principal.getId() && dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId()).collect(Collectors.toList()).size() == 0)
|
||||
if (dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId()).collect(Collectors.toList()).size() == 0)
|
||||
throw new UnauthorisedException();
|
||||
eu.eudat.models.data.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.data.dmp.DataManagementPlan();
|
||||
datamanagementPlan.fromDataModel(dataManagementPlanEntity);
|
||||
|
@ -296,7 +296,7 @@ public class DataManagementPlanManager {
|
|||
|
||||
public DataManagementPlanOverviewModel getOverviewSingle(String id, Principal principal) throws InstantiationException, IllegalAccessException {
|
||||
DMP dataManagementPlanEntity = databaseRepository.getDmpDao().find(UUID.fromString(id));
|
||||
if (dataManagementPlanEntity.getCreator().getId() != principal.getId() && dataManagementPlanEntity.getUsers()
|
||||
if (dataManagementPlanEntity.getUsers()
|
||||
.stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId())
|
||||
.collect(Collectors.toList()).size() == 0)
|
||||
throw new UnauthorisedException();
|
||||
|
@ -408,7 +408,7 @@ public class DataManagementPlanManager {
|
|||
|
||||
DMP newDmp = dataManagementPlan.toDataModel();
|
||||
UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId());
|
||||
newDmp.setCreator(user);
|
||||
//newDmp.setCreator(user);
|
||||
|
||||
createOrganisationsIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getOrganisationDao());
|
||||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||
|
@ -417,7 +417,8 @@ public class DataManagementPlanManager {
|
|||
try {
|
||||
DMP dmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(dataManagementPlan.getId());
|
||||
newDmp.setCreated(dmp.getCreated());
|
||||
if (dmp.getCreator().getId().equals(principal.getId())) {
|
||||
if (dmp.getUsers().stream().filter(userInfo -> userInfo.getUser().getId() == principal.getId())
|
||||
.collect(Collectors.toList()).size() == 0) {
|
||||
List<UserDMP> userDMPList = dmp.getUsers().stream().collect(Collectors.toList());
|
||||
for (UserInfoListingModel userInfoListingModel : dataManagementPlan.getUsers()) {
|
||||
for(UserDMP userDMP : userDMPList) {
|
||||
|
@ -469,11 +470,18 @@ public class DataManagementPlanManager {
|
|||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
||||
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao(), user);
|
||||
newDmp.setCreator(user);
|
||||
|
||||
newDmp.setGroupId(oldDmp.getGroupId());
|
||||
newDmp.setVersion(oldDmp.getVersion() + 1);
|
||||
newDmp.setId(null);
|
||||
newDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
||||
|
||||
// Assign creator.
|
||||
UserDMP userDMP = new UserDMP();
|
||||
userDMP.setDmp(newDmp);
|
||||
userDMP.setUser(user);
|
||||
userDMP.setRole((UserDMP.UserDMPRoles.OWNER.getValue()));
|
||||
|
||||
copyDatasets(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao());
|
||||
} else {
|
||||
throw new DMPNewVersionException("Version to update not the latest.");
|
||||
|
@ -486,11 +494,17 @@ public class DataManagementPlanManager {
|
|||
createResearchersIfTheyDontExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao());
|
||||
UserInfo user = apiContext.getOperationsContext().getBuilderFactory().getBuilder(UserInfoBuilder.class).id(principal.getId()).build();
|
||||
createProjectIfItDoesntExist(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getProjectDao(), user);
|
||||
newDmp.setCreator(user);
|
||||
|
||||
newDmp.setGroupId(UUID.randomUUID());
|
||||
newDmp.setVersion(0);
|
||||
newDmp.setId(null);
|
||||
newDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
||||
|
||||
// Assign creator.
|
||||
UserDMP userDMP = new UserDMP();
|
||||
userDMP.setDmp(newDmp);
|
||||
userDMP.setUser(user);
|
||||
userDMP.setRole((UserDMP.UserDMPRoles.OWNER.getValue()));
|
||||
copyDatasets(newDmp, apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao());
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package eu.eudat.logic.managers;
|
||||
|
||||
import eu.eudat.data.entities.UserDMP;
|
||||
import eu.eudat.exceptions.project.ProjectWithDMPsDeleteException;
|
||||
import eu.eudat.logic.builders.entity.ContentBuilder;
|
||||
import eu.eudat.logic.builders.model.models.ProjectBuilder;
|
||||
|
@ -64,7 +65,8 @@ public class ProjectManager {
|
|||
if (fieldsGroup.equals("listing")) {
|
||||
projectsFuture = pagedItems.withHint(HintedModelFactory.getHint(ProjectListingModel.class)).selectAsync(item -> {
|
||||
item.setDmps(item.getDmps().stream().filter(
|
||||
dmp -> dmp.getCreator().getId().equals(principal.getId()) || dmp.getUsers().stream().filter(user -> user.getUser().getId().equals(principal.getId())).collect(Collectors.toList()).size() > 0)
|
||||
dmp -> dmp.getUsers().stream().filter(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser().getId().equals(principal.getId())
|
||||
|| dmp.getUsers().stream().filter(user -> user.getUser().getId().equals(principal.getId())).collect(Collectors.toList()).size() > 0)
|
||||
.collect(Collectors.groupingBy(DMP::getGroupId))
|
||||
.values().stream()
|
||||
.map(dmps -> dmps.stream().reduce((first, second) -> {
|
||||
|
|
|
@ -42,7 +42,7 @@ public class QuickWizardManager {
|
|||
DMP newDmp = dataManagementPlan.toDataModel();
|
||||
UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId());
|
||||
createProjectIfItDoesntExist(newDmp, user);
|
||||
newDmp.setCreator(user);
|
||||
//newDmp.setCreator(user);
|
||||
DMP dmpret = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
||||
if (dataManagementPlan.getAssociatedUsers().size() == 0)
|
||||
assignUser(newDmp, user, apiContext);
|
||||
|
|
|
@ -211,7 +211,8 @@ public class DataManagementPlan implements DataModel<DMP, DataManagementPlan> {
|
|||
if (fieldOptional.isPresent()) item.setValue(fieldOptional.get().get("value"));
|
||||
});
|
||||
}
|
||||
if (entity.getCreator() != null) this.creator.fromDataModel(entity.getCreator());
|
||||
if (entity.getUsers().stream().anyMatch(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())))
|
||||
this.creator.fromDataModel(entity.getUsers().stream().filter(user -> user.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser());
|
||||
|
||||
if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
||||
this.profiles = new LinkedList<>();
|
||||
|
|
Loading…
Reference in New Issue