From 2139244a628dd25635ff5d6f519231265d8a408e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90?= <73240868+JustinLiang522@users.noreply.github.com> Date: Tue, 21 Feb 2023 17:14:11 +0800 Subject: [PATCH] fix: initializes a ghost user by default to replace that the users that has been deleted (#3344) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /kind bug #### What this PR does / why we need it: 系统默认初始化一个 ghost 用户,用于表示用户已删除。 #### Which issue(s) this PR fixes: Fixes #3317 ```release-note NONE ``` --- src/main/java/run/halo/app/content/Contributor.java | 7 ------- .../run/halo/app/content/impl/PostServiceImpl.java | 6 +++--- src/main/resources/extensions/user.yaml | 12 ++++++++++++ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/run/halo/app/content/Contributor.java b/src/main/java/run/halo/app/content/Contributor.java index b9af1e804..fb86fb490 100644 --- a/src/main/java/run/halo/app/content/Contributor.java +++ b/src/main/java/run/halo/app/content/Contributor.java @@ -13,11 +13,4 @@ public class Contributor { private String displayName; private String avatar; private String name; - - public static Contributor getGhost() { - Contributor contributor = new Contributor(); - contributor.setName("ghost"); - contributor.setDisplayName("已删除用户"); - return contributor; - } } diff --git a/src/main/java/run/halo/app/content/impl/PostServiceImpl.java b/src/main/java/run/halo/app/content/impl/PostServiceImpl.java index 377cd4827..b7ede0bb0 100644 --- a/src/main/java/run/halo/app/content/impl/PostServiceImpl.java +++ b/src/main/java/run/halo/app/content/impl/PostServiceImpl.java @@ -224,15 +224,15 @@ public class PostServiceImpl extends AbstractContentService implements PostServi return Flux.empty(); } return Flux.fromIterable(usernames) - .flatMap(username -> client.fetch(User.class, username)) + .flatMap(username -> client.fetch(User.class, username) + .switchIfEmpty(Mono.defer(() -> client.fetch(User.class, "ghost")))) .map(user -> { Contributor contributor = new Contributor(); contributor.setName(user.getMetadata().getName()); contributor.setDisplayName(user.getSpec().getDisplayName()); contributor.setAvatar(user.getSpec().getAvatar()); return contributor; - }) - .defaultIfEmpty(Contributor.getGhost()); + }); } @Override diff --git a/src/main/resources/extensions/user.yaml b/src/main/resources/extensions/user.yaml index 5df1d716b..d1c18f88d 100644 --- a/src/main/resources/extensions/user.yaml +++ b/src/main/resources/extensions/user.yaml @@ -6,3 +6,15 @@ spec: displayName: Anonymous User email: anonymous@example.com disabled: true + +--- +apiVersion: v1alpha1 +kind: User +metadata: + name: ghost +spec: + displayName: 已删除用户 + email: ghost@example.com + disabled: true + bio: 该用户已被删除。 +