diff --git a/src/main/java/run/halo/app/controller/admin/api/InstallController.java b/src/main/java/run/halo/app/controller/admin/api/InstallController.java index a7226e58e..5465b0585 100644 --- a/src/main/java/run/halo/app/controller/admin/api/InstallController.java +++ b/src/main/java/run/halo/app/controller/admin/api/InstallController.java @@ -196,6 +196,8 @@ public class InstallController { installParam.update(user); // Set password manually userService.setPassword(user, installParam.getPassword()); + // Set default avatar + userService.setDefaultAvatar(user); // Update user return userService.update(user); }).orElseGet(() -> userService.createBy(installParam)); diff --git a/src/main/java/run/halo/app/service/UserService.java b/src/main/java/run/halo/app/service/UserService.java index e992670a8..91698a131 100755 --- a/src/main/java/run/halo/app/service/UserService.java +++ b/src/main/java/run/halo/app/service/UserService.java @@ -122,4 +122,11 @@ public interface UserService extends CrudService { * @param plainPassword plain password must not be blank */ void setPassword(@NonNull User user, @NonNull String plainPassword); + + /** + * Set user default avatar,use Gavatar(http://cn.gravatar.com) + * + * @param user user must not be null + */ + void setDefaultAvatar(@NonNull User user); } diff --git a/src/main/java/run/halo/app/service/impl/UserServiceImpl.java b/src/main/java/run/halo/app/service/impl/UserServiceImpl.java index 96b49b401..66ed2da84 100644 --- a/src/main/java/run/halo/app/service/impl/UserServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/UserServiceImpl.java @@ -1,5 +1,7 @@ package run.halo.app.service.impl; +import cn.hutool.core.text.StrBuilder; +import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.digest.BCrypt; import org.apache.commons.lang3.StringUtils; import org.springframework.context.ApplicationEventPublisher; @@ -193,4 +195,12 @@ public class UserServiceImpl extends AbstractCrudService implemen user.setPassword(BCrypt.hashpw(plainPassword, BCrypt.gensalt())); } + @Override + public void setDefaultAvatar(User user) { + Assert.notNull(user, "User must not be null"); + StrBuilder gravatar = new StrBuilder("//cn.gravatar.com/avatar/"); + gravatar.append(SecureUtil.md5(user.getEmail())); + gravatar.append("?s=256&d=mm"); + user.setAvatar(gravatar.toString()); + } }