ソースを参照

fix[litemall-admin-api]: 修复管理后台用户添加密码未加密

Junling Bu 7 年 前
コミット
fb54dd3c1d

+ 22 - 0
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminUserController.java

@@ -4,6 +4,8 @@ import com.github.pagehelper.util.StringUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.linlinjava.litemall.admin.annotation.LoginAdmin;
+import org.linlinjava.litemall.core.util.RegexUtil;
+import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder;
 import org.linlinjava.litemall.db.domain.LitemallUser;
 import org.linlinjava.litemall.db.service.LitemallUserService;
 import org.linlinjava.litemall.core.util.ResponseUtil;
@@ -58,6 +60,26 @@ public class AdminUserController {
     @PostMapping("/create")
     public Object create(@LoginAdmin Integer adminId, @RequestBody LitemallUser user){
         logger.debug(user);
+
+        String username = user.getUsername();
+        String mobile = user.getMobile();
+        List<LitemallUser> userList = userService.queryByUsername(username);
+        if(userList.size() > 0){
+            return ResponseUtil.fail(403, "用户名已注册");
+        }
+        userList = userService.queryByMobile(mobile);
+        if(userList.size() > 0){
+            return ResponseUtil.fail(403, "手机号已注册");
+        }
+        if(!RegexUtil.isMobileExact(mobile)){
+            return ResponseUtil.fail(403, "手机号格式不正确");
+        }
+
+        String password = user.getPassword();
+        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+        String encodedPassword = encoder.encode(password);
+        user.setPassword(encodedPassword);
+
         user.setAddTime(LocalDateTime.now());
         userService.add(user);
         return ResponseUtil.ok(user);