From 06e6ee406b6ea878be3f7ba1c5f6261b7759f3aa Mon Sep 17 00:00:00 2001 From: amentis Date: Mon, 11 Mar 2024 15:20:09 +0200 Subject: [PATCH] fixes --- .../java/eu/eudat/authorization/Permission.java | 2 +- .../src/main/java/eu/eudat/model/PublicDmp.java | 10 +++++----- .../eudat/model/builder/PublicDmpBuilder.java | 2 +- .../src/main/java/eu/eudat/query/UserQuery.java | 5 ++++- .../DescriptionTemplateServiceImpl.java | 6 +++--- .../web/src/main/resources/config/security.yml | 2 +- dmp-frontend/src/app/core/model/dmp/dmp.ts | 2 +- .../services/description/description.service.ts | 17 +++++++++++++---- .../src/app/core/services/dmp/dmp.service.ts | 16 +++++++++++++--- .../services/reference/reference.service.ts | 2 +- ...mplate-editor-composite-field.component.html | 8 ++------ ...ription-template-editor-field.component.html | 10 +++------- .../description-template-editor.component.ts | 2 +- .../editor/description-template-editor.model.ts | 3 ++- .../description-template-editor.resolver.ts | 1 + .../editor/dmp-blueprint-editor.component.ts | 2 +- .../editor/description-editor.resolver.ts | 2 ++ .../form-field/form-field.component.html | 2 +- .../listing/description-listing.component.ts | 1 + .../overview/description-overview.component.ts | 1 + .../dmp-editor.component.ts | 7 ++++--- .../app/ui/dmp/listing/dmp-listing.component.ts | 1 + .../ui/dmp/overview/dmp-overview.component.ts | 1 + dmp-frontend/src/assets/i18n/en.json | 4 ++++ 24 files changed, 68 insertions(+), 41 deletions(-) diff --git a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java index 322326452..02bd52676 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java +++ b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java @@ -15,7 +15,7 @@ public final class Permission { //Public public static String PublicBrowseDescription = "PublicBrowseDescription"; - public static String PublicBrowseDescriptionTemplate = "BrowseDescriptionTemplate"; + public static String PublicBrowseDescriptionTemplate = "PublicBrowseDescriptionTemplate"; public static String PublicBrowseDmp = "PublicBrowseDmp"; public static String PublicBrowseDmpReference = "PublicBrowseDmpReference"; public static String PublicBrowseDmpUser = "PublicBrowseDmpUser"; diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/PublicDmp.java b/dmp-backend/core/src/main/java/eu/eudat/model/PublicDmp.java index a23903658..a0ceb5135 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/PublicDmp.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/PublicDmp.java @@ -37,7 +37,7 @@ public class PublicDmp { public static final String _publishedAt = "publishedAt"; - private List users; + private List dmpUsers; public static final String _dmpUsers = "dmpUsers"; @@ -104,12 +104,12 @@ public class PublicDmp { this.publishedAt = publishedAt; } - public List getUsers() { - return users; + public List getDmpUsers() { + return dmpUsers; } - public void setUsers(List users) { - this.users = users; + public void setDmpUsers(List dmpUsers) { + this.dmpUsers = dmpUsers; } public List getDmpReferences() { diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/builder/PublicDmpBuilder.java b/dmp-backend/core/src/main/java/eu/eudat/model/builder/PublicDmpBuilder.java index b07921a91..7017394c2 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/builder/PublicDmpBuilder.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/builder/PublicDmpBuilder.java @@ -76,7 +76,7 @@ public class PublicDmpBuilder extends BaseBuilder { if (fields.hasField(this.asIndexer(PublicDmp._updatedAt))) m.setUpdatedAt(d.getUpdatedAt()); if (dmpReferenceMap != null && !dmpReferenceMap.isEmpty() && dmpReferenceMap.containsKey(d.getId())) m.setDmpReferences(dmpReferenceMap.get(d.getId())); - if (dmpUsersMap != null && !dmpUsersMap.isEmpty() && dmpUsersMap.containsKey(d.getId())) m.setUsers(dmpUsersMap.get(d.getId())); + if (dmpUsersMap != null && !dmpUsersMap.isEmpty() && dmpUsersMap.containsKey(d.getId())) m.setDmpUsers(dmpUsersMap.get(d.getId())); if (descriptionsMap != null && !descriptionsMap.isEmpty() && descriptionsMap.containsKey(d.getId())) m.setDescriptions(descriptionsMap.get(d.getId())); models.add(m); diff --git a/dmp-backend/core/src/main/java/eu/eudat/query/UserQuery.java b/dmp-backend/core/src/main/java/eu/eudat/query/UserQuery.java index 4bd7d7c95..dc9d107b6 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/query/UserQuery.java +++ b/dmp-backend/core/src/main/java/eu/eudat/query/UserQuery.java @@ -154,7 +154,10 @@ public class UserQuery extends QueryBase { else userId = null; List predicates = new ArrayList<>(); - if (userId != null) { + boolean usePublic = this.authorize.contains(AuthorizationFlags.Public); + if (usePublic){ + predicates.add(queryContext.CriteriaBuilder.in(queryContext.Root.get(UserEntity._isActive)).value(IsActive.Active)); + }else if (userId != null) { predicates.add(queryContext.CriteriaBuilder.in(queryContext.Root.get(UserEntity._id)).value(userId)); } if (!predicates.isEmpty()) { diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java index f2c4b6cef..e4b6a4675 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/descriptiontemplate/DescriptionTemplateServiceImpl.java @@ -202,7 +202,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic this.entityManager.persist(data); this.persistUsers(data.getId(), model.getUsers()); - if (!isUpdate) + if (this.conventionService.isListNullOrEmpty(model.getUsers())) this.addOwner(data); this.entityManager.flush(); @@ -260,9 +260,9 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic this.sendDescriptionTemplateInvitationEvent(data, NotificationContactType.EMAIL); this.sendDescriptionTemplateInvitationEvent(data, NotificationContactType.IN_APP); } - updatedCreatedIds.add(data.getId()); + updatedCreatedIds.add(data.getUserId()); } - List toDelete = items.stream().filter(x -> updatedCreatedIds.stream().noneMatch(y -> y.equals(x.getId()))).collect(Collectors.toList()); + List toDelete = items.stream().filter(x -> updatedCreatedIds.stream().noneMatch(y -> y.equals(x.getUserId()))).collect(Collectors.toList()); this.deleterFactory.deleter(UserDescriptionTemplateDeleter.class).delete(toDelete); } diff --git a/dmp-backend/web/src/main/resources/config/security.yml b/dmp-backend/web/src/main/resources/config/security.yml index 2494d97ef..2c7e3f241 100644 --- a/dmp-backend/web/src/main/resources/config/security.yml +++ b/dmp-backend/web/src/main/resources/config/security.yml @@ -2,7 +2,7 @@ web: security: enabled: true authorized-endpoints: [ api ] - allowed-endpoints: [ api/public, api/description/public, /api/supportive-material/public, api/language/public, api/contact-support/public, api/dashboard/public ] + allowed-endpoints: [ api/public, api/dmp/public, api/description/public, /api/supportive-material/public, api/language/public, api/contact-support/public, api/dashboard/public ] idp: api-key: enabled: false diff --git a/dmp-frontend/src/app/core/model/dmp/dmp.ts b/dmp-frontend/src/app/core/model/dmp/dmp.ts index b5cc56b86..4fdeb4c00 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp.ts @@ -158,7 +158,7 @@ export interface PublicDmp extends BaseEntity { finalizedAt?: Date; publishedAt?: Date; dmpReferences: PublicDmpReference[]; - users: PublicDmpUser[]; + dmpUsers: PublicDmpUser[]; descriptions: PublicDescription[]; } diff --git a/dmp-frontend/src/app/core/services/description/description.service.ts b/dmp-frontend/src/app/core/services/description/description.service.ts index 633394bc9..e0b02e453 100644 --- a/dmp-frontend/src/app/core/services/description/description.service.ts +++ b/dmp-frontend/src/app/core/services/description/description.service.ts @@ -34,7 +34,11 @@ export class DescriptionService { publicQuery(q: DescriptionLookup): Observable> { const url = `${this.apiBase}/public/query`; - return this.http.post>(url, q).pipe(catchError((error: any) => throwError(error))); + const params = new BaseHttpParams(); + params.interceptorContext = { + excludedInterceptors: [InterceptorType.AuthToken] + }; + return this.http.post>(url, q, {params: params}).pipe(catchError((error: any) => throwError(error))); } getSingle(id: Guid, reqFields: string[] = []): Observable { @@ -50,10 +54,15 @@ export class DescriptionService { getPublicSingle(id: Guid, reqFields: string[] = []): Observable { const url = `${this.apiBase}/public/${id}`; - const options = { params: { f: reqFields } }; - + const options: HttpParamsOptions = { fromObject: { f: reqFields } }; + + let params: BaseHttpParams = new BaseHttpParams(options); + params.interceptorContext = { + excludedInterceptors: [InterceptorType.AuthToken] + }; + return this.http - .get(url, options).pipe( + .get(url, { params: params }).pipe( catchError((error: any) => throwError(error))); } 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 9b40743d7..410a38920 100644 --- a/dmp-frontend/src/app/core/services/dmp/dmp.service.ts +++ b/dmp-frontend/src/app/core/services/dmp/dmp.service.ts @@ -43,7 +43,11 @@ export class DmpService { publicQuery(q: DmpLookup): Observable> { const url = `${this.apiBase}/public/query`; - return this.http.post>(url, q).pipe(catchError((error: any) => throwError(error))); + const params = new BaseHttpParams(); + params.interceptorContext = { + excludedInterceptors: [InterceptorType.AuthToken] + }; + return this.http.post>(url, q, {params: params}).pipe(catchError((error: any) => throwError(error))); } getSingle(id: Guid, reqFields: string[] = []): Observable { @@ -57,10 +61,16 @@ export class DmpService { getPublicSingle(id: Guid, reqFields: string[] = []): Observable { const url = `${this.apiBase}/public/${id}`; - const options = { params: { f: reqFields } }; + + const options: HttpParamsOptions = { fromObject: { f: reqFields } }; + + let params: BaseHttpParams = new BaseHttpParams(options); + params.interceptorContext = { + excludedInterceptors: [InterceptorType.AuthToken] + }; return this.http - .get(url, options).pipe( + .get(url, { params: params }).pipe( catchError((error: any) => throwError(error))); } diff --git a/dmp-frontend/src/app/core/services/reference/reference.service.ts b/dmp-frontend/src/app/core/services/reference/reference.service.ts index 959f4ff9a..fde3936a5 100644 --- a/dmp-frontend/src/app/core/services/reference/reference.service.ts +++ b/dmp-frontend/src/app/core/services/reference/reference.service.ts @@ -206,7 +206,7 @@ export class ReferenceService { } getReferencesForTypes(dmpReferences: DmpReference[], referenceTypeIds?: Guid[]): DmpReference[] { - return dmpReferences?.filter(x => referenceTypeIds?.includes(x?.reference?.type?.id)); + return dmpReferences?.filter(x => referenceTypeIds?.includes(x?.reference?.type?.id)).filter(x=> x.isActive === IsActive.Active);; } getReferencesForTypesFirstSafe(dmpReferences: DmpReference[], referenceTypeIds?: Guid[]): DmpReference { diff --git a/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html b/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html index 9a3a9bde9..3b6665f1e 100644 --- a/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html +++ b/dmp-frontend/src/app/ui/admin/description-template/editor/components/composite-field/description-template-editor-composite-field.component.html @@ -205,18 +205,14 @@ Argos Entities - -