Properly remove associate Collaborators from a DMP
This commit is contained in:
parent
710b49fc83
commit
64624ca6f1
|
@ -368,6 +368,14 @@ public class DataManagementPlanManager {
|
||||||
apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().createOrUpdate(newDmp.getGrant());
|
apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().createOrUpdate(newDmp.getGrant());
|
||||||
newDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
newDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
||||||
|
|
||||||
|
if (dataManagementPlan.getUsers() != null && !dataManagementPlan.getUsers().isEmpty()) {
|
||||||
|
clearUsers(newDmp);
|
||||||
|
for (UserInfoListingModel userListing : dataManagementPlan.getUsers()) {
|
||||||
|
UserInfo tempUser = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userListing.getId());
|
||||||
|
assignUser(dmp, tempUser, UserDMP.UserDMPRoles.fromInteger(userListing.getRole()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Dataset manipulation for when the DMP is set to be finalized.
|
// Dataset manipulation for when the DMP is set to be finalized.
|
||||||
if (dataManagementPlan.getStatus() == DMP.DMPStatus.FINALISED.getValue()) {
|
if (dataManagementPlan.getStatus() == DMP.DMPStatus.FINALISED.getValue()) {
|
||||||
if (dataManagementPlan.getDatasetsToBeFinalized() != null && !dataManagementPlan.getDatasetsToBeFinalized().isEmpty()) {
|
if (dataManagementPlan.getDatasetsToBeFinalized() != null && !dataManagementPlan.getDatasetsToBeFinalized().isEmpty()) {
|
||||||
|
@ -1445,13 +1453,22 @@ public class DataManagementPlanManager {
|
||||||
* */
|
* */
|
||||||
|
|
||||||
private void assignUser(DMP dmp, UserInfo userInfo) {
|
private void assignUser(DMP dmp, UserInfo userInfo) {
|
||||||
|
this.assignUser(dmp, userInfo, UserDMP.UserDMPRoles.OWNER);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assignUser(DMP dmp, UserInfo userInfo, UserDMP.UserDMPRoles role) {
|
||||||
UserDMP userDMP = new UserDMP();
|
UserDMP userDMP = new UserDMP();
|
||||||
userDMP.setDmp(dmp);
|
userDMP.setDmp(dmp);
|
||||||
userDMP.setUser(userInfo);
|
userDMP.setUser(userInfo);
|
||||||
userDMP.setRole(UserDMP.UserDMPRoles.OWNER.getValue());
|
userDMP.setRole(role.getValue());
|
||||||
databaseRepository.getUserDmpDao().createOrUpdate(userDMP);
|
databaseRepository.getUserDmpDao().createOrUpdate(userDMP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void clearUsers(DMP dmp) {
|
||||||
|
List<UserDMP> userDMPs = apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().asQueryable().where(((builder, root) -> builder.equal(root.get("dmp").get("id"), dmp.getId()))).toList();
|
||||||
|
userDMPs.forEach(userDMP -> apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().delete(userDMP));
|
||||||
|
}
|
||||||
|
|
||||||
private void assignGrandUserIfInternal(DMP dmp, UserInfo user) {
|
private void assignGrandUserIfInternal(DMP dmp, UserInfo user) {
|
||||||
if (dmp.getGrant().getCreationUser() == null && (dmp.getGrant().getReference() != null && dmp.getGrant().getReference().startsWith("dmp:"))) {
|
if (dmp.getGrant().getCreationUser() == null && (dmp.getGrant().getReference() != null && dmp.getGrant().getReference().startsWith("dmp:"))) {
|
||||||
dmp.getGrant().setCreationUser(user);
|
dmp.getGrant().setCreationUser(user);
|
||||||
|
|
Loading…
Reference in New Issue