diff --git a/src/main/java/run/halo/app/service/base/BaseCommentService.java b/src/main/java/run/halo/app/service/base/BaseCommentService.java index dcd3b54a1..6bcad1570 100644 --- a/src/main/java/run/halo/app/service/base/BaseCommentService.java +++ b/src/main/java/run/halo/app/service/base/BaseCommentService.java @@ -214,4 +214,25 @@ public interface BaseCommentService extends CrudSer */ @NonNull List listChildrenBy(@NonNull Integer targetId, @NonNull Long commentParentId, @NonNull CommentStatus status, @NonNull Sort sort); + + /** + * Filters comment ip address. + * + * @param comment comment dto must not be null + */ + void filterIpAddress(@NonNull BaseCommentDTO comment); + + /** + * Filters comment ip address. + * + * @param comments comment dto list + */ + void filterIpAddress(@Nullable List comments); + + /** + * Filters comment ip address. + * + * @param commentPage comment page + */ + void filterIpAddress(@NonNull Page commentPage); } diff --git a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java index 906cac579..929d57e39 100644 --- a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java @@ -470,6 +470,29 @@ public abstract class BaseCommentServiceImpl extend return childrenList; } + @Override + public void filterIpAddress(BaseCommentDTO comment) { + Assert.notNull(comment, "Base comment dto must not be null"); + + // Clear ip address + comment.setIpAddress(""); + } + + @Override + public void filterIpAddress(List comments) { + if (CollectionUtils.isEmpty(comments)) { + return; + } + + comments.forEach(this::filterIpAddress); + } + + @Override + public void filterIpAddress(Page commentPage) { + Assert.notNull(commentPage, "Comment page must not be null"); + commentPage.forEach(this::filterIpAddress); + } + /** * Get children comments recursively. *