diff --git a/api/src/main/java/run/halo/app/core/extension/content/Post.java b/api/src/main/java/run/halo/app/core/extension/content/Post.java index fbb432edb5..ebe6b88603 100644 --- a/api/src/main/java/run/halo/app/core/extension/content/Post.java +++ b/api/src/main/java/run/halo/app/core/extension/content/Post.java @@ -81,6 +81,10 @@ public static boolean isPublished(MetadataOperator metadata) { return labels != null && parseBoolean(labels.getOrDefault(PUBLISHED_LABEL, "false")); } + public static boolean isPublic(PostSpec spec) { + return spec.getVisible() == null || VisibleEnum.PUBLIC.equals(spec.getVisible()); + } + @Data public static class PostSpec { @Schema(requiredMode = RequiredMode.REQUIRED, minLength = 1) diff --git a/application/src/main/java/run/halo/app/search/IndicesServiceImpl.java b/application/src/main/java/run/halo/app/search/IndicesServiceImpl.java index 9c52f60395..e2e3ae4203 100644 --- a/application/src/main/java/run/halo/app/search/IndicesServiceImpl.java +++ b/application/src/main/java/run/halo/app/search/IndicesServiceImpl.java @@ -40,7 +40,8 @@ public Mono rebuildPostIndices() { private Mono rebuildPostIndices(PostSearchService searchService) { return postFinder.listAll() - .filter(post -> Post.isPublished(post.getMetadata())) + .filter( + post -> Post.isPublished(post.getMetadata()) && Post.isPublic(post.getSpec())) .flatMap(listedPostVo -> { PostVo postVo = PostVo.from(listedPostVo); return postFinder.content(postVo.getMetadata().getName())