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: 该用户已被删除。 +