From a78044920a031882f8272d10071017bf9f1b6e5a Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Mon, 12 Oct 2020 12:45:32 +0300 Subject: [PATCH] Fixed issues with elastic and last public version --- .../java/eu/eudat/data/dao/entities/DMPDaoImpl.java | 4 +++- .../web/src/main/java/eu/eudat/controllers/DMPs.java | 4 ++-- .../logic/managers/DataManagementPlanManager.java | 10 +++++----- dmp-frontend/src/app/core/services/dmp/dmp.service.ts | 4 ++-- .../src/app/ui/dmp/overview/dmp-overview.component.ts | 10 +++++++--- 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java index 0074428eb..32c687d9c 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/dao/entities/DMPDaoImpl.java @@ -57,7 +57,9 @@ public class DMPDaoImpl extends DatabaseAccess implements DMPDao { query.where((builder, root) -> builder.equal(root.get("status"), DMP.DMPStatus.ACTIVE.getValue())); } } - query.where(((builder, root) -> builder.equal(root.get("isPublic"), criteria.getIsPublic()))); + if (criteria.getIsPublic()) { + query.where(((builder, root) -> builder.equal(root.get("isPublic"), criteria.getIsPublic()))); + } /*if (criteria.getRole() != null) { if (criteria.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())) { query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).get("role"), UserDMP.UserDMPRoles.OWNER.getValue())); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java index f8844b7d7..f7f7b907c 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DMPs.java @@ -161,9 +161,9 @@ public class DMPs extends BaseController { @RequestMapping(method = RequestMethod.GET, value = {"/versions/{id}"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity>> getVersions(@PathVariable(value= "id") String groupId, + ResponseEntity>> getVersions(@PathVariable(value= "id") String groupId, @RequestParam(value= "public") Boolean isPublic, @ClaimedAuthorities(claims = {Authorities.ADMIN, Authorities.MANAGER, Authorities.USER, Authorities.ANONYMOUS}) Principal principal) throws Exception { - List versions = this.dataManagementPlanManager.getAllVersions(groupId, principal); + List versions = this.dataManagementPlanManager.getAllVersions(groupId, principal, isPublic); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem>().status(ApiMessageCode.NO_MESSAGE).payload(versions)); } 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 ad66be3b5..a68ffdfbb 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 @@ -321,8 +321,8 @@ public class DataManagementPlanManager { return data; } - public List getAllVersions(String groupId, Principal principal) { - UUID principalId = principal.getId(); + public List getAllVersions(String groupId, Principal principal, Boolean isPublic) { + UUID principalId = principal != null ? principal.getId() : null; List versions = new ArrayList<>(); QueryableList items = null; QueryableList authItems = null; @@ -330,10 +330,10 @@ public class DataManagementPlanManager { DataManagementPlanCriteria criteria = new DataManagementPlanCriteria(); criteria.setGroupIds(Collections.singletonList(UUID.fromString(groupId))); criteria.setAllVersions(true); - criteria.setIsPublic(principalId == null); - criteria.setOnlyPublic(principalId == null); + criteria.setIsPublic(isPublic); + criteria.setOnlyPublic(isPublic); items = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria); - if (principalId != null) { + if (!isPublic) { authItems = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getAuthenticated(items, principalId, roles); } else { authItems = items; diff --git a/dmp-frontend/src/app/core/services/dmp/dmp.service.ts b/dmp-frontend/src/app/core/services/dmp/dmp.service.ts index 853ad6b84..52888b3c1 100644 --- a/dmp-frontend/src/app/core/services/dmp/dmp.service.ts +++ b/dmp-frontend/src/app/core/services/dmp/dmp.service.ts @@ -58,8 +58,8 @@ export class DmpService { return this.http.get(this.actionUrl + 'publicOverview/' + id, { headers: this.headers }) } - getAllVersions(id: string): Observable { - return this.http.get(this.actionUrl + 'versions/' + id, { headers: this.headers }) + getAllVersions(id: string, isPublic: boolean): Observable { + return this.http.get(this.actionUrl + 'versions/' + id + '?public=' + isPublic, { headers: this.headers }) } unlock(id: String): Observable { diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 2d457d237..f54f3ae64 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -468,7 +468,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { } getAllVersions(dmp: DmpOverviewModel) { - this.dmpService.getAllVersions(dmp.groupId) + this.dmpService.getAllVersions(dmp.groupId, this.isPublicView) .pipe(takeUntil(this._destroyed)) .subscribe(items => { this.versions = items; @@ -618,7 +618,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { // } viewVersions(rowId: String, rowLabel: String) { - if (this.dmp.isPublic && !this.isUserOwner) { + if (this.isPublicView) { this.router.navigate(['/explore-plans/versions/' + rowId], { queryParams: { groupLabel: rowLabel } }); } else { this.router.navigate(['/plans/versions/' + rowId], { queryParams: { groupLabel: rowLabel } }); @@ -630,7 +630,11 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { } versionChanged(versionId: string): void { - this.router.navigate(['/plans/overview/' + versionId]); + if (this.isPublicView) { + this.router.navigate(['/explore-plans/publicOverview/' + versionId]); + } else { + this.router.navigate(['/plans/overview/' + versionId]); + } } openShareDialog(rowId: any, rowName: any) {