From bbea391c9c7fae8a40ed8fdc334a0467d6099bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Sz=C3=BCcs?= <127139797+balazs-szucs@users.noreply.github.com> Date: Wed, 28 Jan 2026 00:38:47 +0100 Subject: [PATCH] fix(metadata-refresh): filter book shelves by authenticated user (#2481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Balázs Szücs --- .../service/metadata/MetadataRefreshService.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java b/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java index 42a3c5988..808df6750 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java @@ -312,6 +312,12 @@ public class MetadataRefreshService { bookMetadataUpdater.setBookMetadata(context); Book book = bookMapper.toBook(context.getBookEntity()); + + BookLoreUser user = authenticationService.getAuthenticatedUser(); + if (user != null && book.getShelves() != null) { + book.setShelves(filterShelvesByUserId(book.getShelves(), user.getId())); + } + notificationService.sendMessage(Topic.BOOK_METADATA_UPDATE, book); } } @@ -752,4 +758,11 @@ public class MetadataRefreshService { case BOOKS -> request.getBookIds(); }; } + + private Set filterShelvesByUserId(Set shelves, Long userId) { + if (shelves == null) return Collections.emptySet(); + return shelves.stream() + .filter(shelf -> userId.equals(shelf.getUserId())) + .collect(Collectors.toSet()); + } }