From b87147e381203035cbbd643db2fb5f219fe71ed3 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Thu, 24 Apr 2025 10:19:54 +0200 Subject: [PATCH] Updated the filter Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at> --- .../at/tuwien/endpoints/DatabaseEndpoint.java | 9 +++++++++ dbrepo-ui/components/ResourceStatus.vue | 18 +++++++++++++++++- dbrepo-ui/nuxt.config.ts | 4 ++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java index 9eadffd0df..fb4ebf692a 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java @@ -5,6 +5,7 @@ import at.tuwien.api.error.ApiErrorDto; import at.tuwien.entities.container.Container; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.DatabaseAccess; +import at.tuwien.entities.identifier.IdentifierStatusType; import at.tuwien.entities.user.User; import at.tuwien.exception.*; import at.tuwien.mapper.MetadataMapper; @@ -534,6 +535,10 @@ public class DatabaseEndpoint extends AbstractEndpoint { log.trace("authenticated user {} is not owner: remove access list", principal.getName()); database.setAccesses(List.of()); } + database.setIdentifiers(database.getIdentifiers() + .stream() + .filter(i -> i.getStatus().equals(IdentifierStatusType.DRAFT) && i.getOwnedBy().equals(getId(principal)) || i.getStatus().equals(IdentifierStatusType.PUBLISHED)) + .toList()); } else { if (!database.getIsPublic() && !database.getIsSchemaPublic()) { log.error("Failed to find database: not public and not authenticated"); @@ -551,6 +556,10 @@ public class DatabaseEndpoint extends AbstractEndpoint { .filter(v -> !v.getIsPublic() && !v.getIsSchemaPublic()) .toList()); database.setAccesses(List.of()); + database.setIdentifiers(database.getIdentifiers() + .stream() + .filter(i -> i.getStatus().equals(IdentifierStatusType.PUBLISHED)) + .toList()); } final DatabaseDto dto = metadataMapper.databaseToDatabaseDto(database); final HttpHeaders headers = new HttpHeaders(); diff --git a/dbrepo-ui/components/ResourceStatus.vue b/dbrepo-ui/components/ResourceStatus.vue index 017908b3af..da792bfaac 100644 --- a/dbrepo-ui/components/ResourceStatus.vue +++ b/dbrepo-ui/components/ResourceStatus.vue @@ -16,6 +16,8 @@ </template> <script> +import {useCacheStore} from "~/stores/cache.js"; + export default { props: { resource: { @@ -34,6 +36,11 @@ export default { } } }, + data () { + return { + cacheStore: useCacheStore() + } + }, computed: { mode () { if (!this.resource) { @@ -54,8 +61,17 @@ export default { } return this.$t(`pages.database.status.${this.mode}`) }, + cacheUser () { + return this.cacheStore.getUser + }, hasIdentifier () { - return this.resource.identifiers?.length > 0 + if (!this.resource.identifiers) { + return false + } + if (!this.cacheUser) { + return this.resource.identifiers.filter(i => i.status === 'published').length + } + return this.resource.identifiers.filter(i => i.status === 'published' || i.owner.id === this.cacheUser.uid) }, color () { if (this.hasIdentifier) { diff --git a/dbrepo-ui/nuxt.config.ts b/dbrepo-ui/nuxt.config.ts index b3694d5b8b..bf094023cb 100644 --- a/dbrepo-ui/nuxt.config.ts +++ b/dbrepo-ui/nuxt.config.ts @@ -82,8 +82,8 @@ export default defineNuxtConfig({ } }, api: { - client: 'http://localhost', - server: 'http://gateway-service', + client: 'https://test.dbrepo.tuwien.ac.at', + server: 'https://test.dbrepo.tuwien.ac.at', }, database: { image: { -- GitLab