Set default avatar when installing.

pull/210/head
ruibaby 2019-06-16 21:51:47 +08:00
parent 4baeb40665
commit 7cd58540b9
3 changed files with 19 additions and 0 deletions

View File

@ -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));

View File

@ -122,4 +122,11 @@ public interface UserService extends CrudService<User, Integer> {
* @param plainPassword plain password must not be blank
*/
void setPassword(@NonNull User user, @NonNull String plainPassword);
/**
* Set user default avataruse Gavatar(http://cn.gravatar.com)
*
* @param user user must not be null
*/
void setDefaultAvatar(@NonNull User user);
}

View File

@ -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<User, Integer> 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());
}
}