From a1396faaea0d7620fedbbdeacc2262265742e8ab Mon Sep 17 00:00:00 2001 From: RuoYi Date: Tue, 8 Jan 2019 15:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=AA=E4=BA=BA=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BF=AE=E6=94=B9=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SysProfileController.java | 68 +++++++++++-------- .../templates/system/user/profile/avatar.html | 2 - .../system/user/profile/profile.html | 7 +- .../system/user/profile/resetPwd.html | 8 +-- 4 files changed, 48 insertions(+), 37 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index f0031743..92eacc3b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -1,13 +1,11 @@ package com.ruoyi.web.controller.system; -import org.apache.shiro.crypto.hash.Md5Hash; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -17,6 +15,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.config.Global; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.shiro.service.SysPasswordService; import com.ruoyi.framework.util.FileUploadUtils; import com.ruoyi.framework.util.ShiroUtils; @@ -66,54 +65,63 @@ public class SysProfileController extends BaseController public boolean checkPassword(String password) { SysUser user = getSysUser(); - String encrypt = new Md5Hash(user.getLoginName() + password + user.getSalt()).toHex().toString(); - if (user.getPassword().equals(encrypt)) + if (passwordService.matches(user, password)) { return true; } return false; } - @GetMapping("/resetPwd/{userId}") - public String resetPwd(@PathVariable("userId") Long userId, ModelMap mmap) + @GetMapping("/resetPwd") + public String resetPwd(ModelMap mmap) { - mmap.put("user", userService.selectUserById(userId)); + SysUser user = getSysUser(); + mmap.put("user", userService.selectUserById(user.getUserId())); return prefix + "/resetPwd"; } @Log(title = "重置密码", businessType = BusinessType.UPDATE) @PostMapping("/resetPwd") @ResponseBody - public AjaxResult resetPwd(SysUser user) + public AjaxResult resetPwd(String oldPassword, String newPassword) { - user.setSalt(ShiroUtils.randomSalt()); - user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); - int rows = userService.resetUserPwd(user); - if (rows > 0) + SysUser user = getSysUser(); + if (StringUtils.isNotEmpty(newPassword) && passwordService.matches(user, oldPassword)) { - setSysUser(userService.selectUserById(user.getUserId())); - return success(); + user.setSalt(ShiroUtils.randomSalt()); + user.setPassword(passwordService.encryptPassword(user.getLoginName(), newPassword, user.getSalt())); + if (userService.resetUserPwd(user) > 0) + { + setSysUser(userService.selectUserById(user.getUserId())); + return success(); + } + return error(); + } + else + { + return error("修改密码失败,旧密码错误"); } - return error(); } /** * 修改用户 */ - @GetMapping("/edit/{userId}") - public String edit(@PathVariable("userId") Long userId, ModelMap mmap) + @GetMapping("/edit") + public String edit(ModelMap mmap) { - mmap.put("user", userService.selectUserById(userId)); + SysUser user = getSysUser(); + mmap.put("user", userService.selectUserById(user.getUserId())); return prefix + "/edit"; } /** * 修改头像 */ - @GetMapping("/avatar/{userId}") - public String avatar(@PathVariable("userId") Long userId, ModelMap mmap) + @GetMapping("/avatar") + public String avatar(ModelMap mmap) { - mmap.put("user", userService.selectUserById(userId)); + SysUser user = getSysUser(); + mmap.put("user", userService.selectUserById(user.getUserId())); return prefix + "/avatar"; } @@ -125,9 +133,14 @@ public class SysProfileController extends BaseController @ResponseBody public AjaxResult update(SysUser user) { - if (userService.updateUserInfo(user) > 0) + SysUser currentUser = getSysUser(); + currentUser.setUserName(user.getUserName()); + currentUser.setEmail(user.getEmail()); + currentUser.setPhonenumber(user.getPhonenumber()); + currentUser.setSex(user.getSex()); + if (userService.updateUserInfo(currentUser) > 0) { - setSysUser(userService.selectUserById(user.getUserId())); + setSysUser(userService.selectUserById(currentUser.getUserId())); return success(); } return error(); @@ -139,17 +152,18 @@ public class SysProfileController extends BaseController @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PostMapping("/updateAvatar") @ResponseBody - public AjaxResult updateAvatar(SysUser user, @RequestParam("avatarfile") MultipartFile file) + public AjaxResult updateAvatar(@RequestParam("avatarfile") MultipartFile file) { + SysUser currentUser = getSysUser(); try { if (!file.isEmpty()) { String avatar = FileUploadUtils.upload(Global.getAvatarPath(), file); - user.setAvatar(avatar); - if (userService.updateUserInfo(user) > 0) + currentUser.setAvatar(avatar); + if (userService.updateUserInfo(currentUser) > 0) { - setSysUser(userService.selectUserById(user.getUserId())); + setSysUser(userService.selectUserById(currentUser.getUserId())); return success(); } } diff --git a/ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html index 0b6d7f45..77beb91a 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html @@ -4,7 +4,6 @@ 用户头像修改 -
@@ -68,7 +67,6 @@ function submitHandler() { var img = cropper.getBlob(); var formdata = new FormData(); formdata.append("avatarfile", img); - formdata.append("userId", $("#userId").val()); $.ajax({ url: ctx + "system/user/profile/updateAvatar", data: formdata, diff --git a/ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html index 8862c3a0..bf8b2b5b 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html @@ -58,20 +58,19 @@
diff --git a/ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html index ecb0758e..692e5ec9 100644 --- a/ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html +++ b/ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html @@ -21,7 +21,7 @@
- +
@@ -51,14 +51,14 @@ } } }, - password: { + newPassword: { required: true, minlength: 5, maxlength: 20 }, confirm: { required: true, - equalTo: "#password" + equalTo: "#newPassword" } }, messages: { @@ -66,7 +66,7 @@ required: "请输入原密码", remote: "原密码错误" }, - password: { + newPassword: { required: "请输入新密码", minlength: "密码不能小于6个字符", maxlength: "密码不能大于20个字符"