若依开源1.1.2发布
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
package com.ruoyi.common.utils.security;
|
||||
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.apache.shiro.subject.PrincipalCollection;
|
||||
import org.apache.shiro.subject.SimplePrincipalCollection;
|
||||
import org.apache.shiro.subject.Subject;
|
||||
|
||||
import com.ruoyi.project.system.user.domain.User;
|
||||
@ -28,6 +30,16 @@ public class ShiroUtils
|
||||
return (User) getSubjct().getPrincipal();
|
||||
}
|
||||
|
||||
public static void setUser(User user)
|
||||
{
|
||||
Subject subject = getSubjct();
|
||||
PrincipalCollection principalCollection = subject.getPrincipals();
|
||||
String realmName = principalCollection.getRealmNames().iterator().next();
|
||||
PrincipalCollection newPrincipalCollection = new SimplePrincipalCollection(user, realmName);
|
||||
// 重新加载Principal
|
||||
subject.runAs(newPrincipalCollection);
|
||||
}
|
||||
|
||||
public static Long getUserId()
|
||||
{
|
||||
return getUser().getUserId().longValue();
|
||||
|
@ -58,6 +58,11 @@ public class BaseController
|
||||
{
|
||||
return ShiroUtils.getUser();
|
||||
}
|
||||
|
||||
public void setUser(User user)
|
||||
{
|
||||
ShiroUtils.setUser(user);
|
||||
}
|
||||
|
||||
public Long getUserId()
|
||||
{
|
||||
|
@ -0,0 +1,119 @@
|
||||
package com.ruoyi.project.system.user.controller;
|
||||
|
||||
import org.apache.shiro.crypto.hash.Md5Hash;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
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.ResponseBody;
|
||||
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
||||
import com.ruoyi.framework.web.controller.BaseController;
|
||||
import com.ruoyi.framework.web.domain.Message;
|
||||
import com.ruoyi.project.system.user.domain.User;
|
||||
import com.ruoyi.project.system.user.service.IUserService;
|
||||
|
||||
/**
|
||||
* 个人信息 业务处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/system/user/profile")
|
||||
public class ProfileController extends BaseController
|
||||
{
|
||||
private String prefix = "system/user/profile";
|
||||
|
||||
@Autowired
|
||||
private IUserService userService;
|
||||
|
||||
/**
|
||||
* 个人信息
|
||||
*/
|
||||
@GetMapping()
|
||||
public String profile(Model model)
|
||||
{
|
||||
User user = getUser();
|
||||
String sex = user.getSex();
|
||||
if ("0".equals(sex))
|
||||
{
|
||||
user.setSex("性别:男");
|
||||
}
|
||||
else if ("1".equals(sex))
|
||||
{
|
||||
user.setSex("性别:女");
|
||||
}
|
||||
String roleGroup = userService.selectUserRoleGroup(user.getUserId());
|
||||
String postGroup = userService.selectUserPostGroup(user.getUserId());
|
||||
model.addAttribute("user", user);
|
||||
model.addAttribute("roleGroup", roleGroup);
|
||||
model.addAttribute("postGroup", postGroup);
|
||||
return prefix + "/profile";
|
||||
}
|
||||
|
||||
@RequestMapping("/checkPassword")
|
||||
@ResponseBody
|
||||
public boolean checkPassword(String password)
|
||||
{
|
||||
User user = getUser();
|
||||
String encrypt = new Md5Hash(user.getLoginName() + password + user.getSalt()).toHex().toString();
|
||||
if (user.getPassword().equals(encrypt))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Log(title = "系统管理", action = "个人信息-重置密码")
|
||||
@GetMapping("/resetPwd/{userId}")
|
||||
public String resetPwd(@PathVariable("userId") Long userId, Model model)
|
||||
{
|
||||
User user = userService.selectUserById(userId);
|
||||
model.addAttribute("user", user);
|
||||
return prefix + "/resetPwd";
|
||||
}
|
||||
|
||||
@Log(title = "系统管理", action = "个人信息-重置密码")
|
||||
@PostMapping("/resetPwd")
|
||||
@ResponseBody
|
||||
public Message resetPwd(User user)
|
||||
{
|
||||
int rows = userService.resetUserPwd(user);
|
||||
if (rows > 0)
|
||||
{
|
||||
setUser(userService.selectUserById(user.getUserId()));
|
||||
return Message.ok();
|
||||
}
|
||||
return Message.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
@Log(title = "系统管理", action = "个人信息-修改用户")
|
||||
@GetMapping("/edit/{userId}")
|
||||
public String edit(@PathVariable("userId") Long userId, Model model)
|
||||
{
|
||||
User user = userService.selectUserById(userId);
|
||||
model.addAttribute("user", user);
|
||||
return prefix + "/edit";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
@Log(title = "系统管理", action = "个人信息-保存用户")
|
||||
@PostMapping("/update")
|
||||
@ResponseBody
|
||||
public Message update(User user)
|
||||
{
|
||||
if (userService.updateUser(user) > 0)
|
||||
{
|
||||
setUser(userService.selectUserById(user.getUserId()));
|
||||
return Message.ok();
|
||||
}
|
||||
return Message.error();
|
||||
}
|
||||
}
|
@ -109,7 +109,7 @@ public class UserController extends BaseController
|
||||
@ResponseBody
|
||||
public Message resetPwd(User user)
|
||||
{
|
||||
int rows = userService.updateUser(user);
|
||||
int rows = userService.resetUserPwd(user);
|
||||
if (rows > 0)
|
||||
{
|
||||
return Message.ok();
|
||||
@ -152,10 +152,10 @@ public class UserController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* 保存用户
|
||||
*/
|
||||
@RequiresPermissions("system:user:save")
|
||||
@Log(title = "系统管理", action = "部门管理-保存部门")
|
||||
@Log(title = "系统管理", action = "用户管理-保存用户")
|
||||
@PostMapping("/save")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@ResponseBody
|
||||
@ -183,28 +183,4 @@ public class UserController extends BaseController
|
||||
return uniqueFlag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人信息
|
||||
*/
|
||||
@GetMapping("/profile")
|
||||
public String profile(Model model)
|
||||
{
|
||||
User user = getUser();
|
||||
String sex = user.getSex();
|
||||
if ("0".equals(sex))
|
||||
{
|
||||
user.setSex("性别:男");
|
||||
}
|
||||
else if ("1".equals(sex))
|
||||
{
|
||||
user.setSex("性别:女");
|
||||
}
|
||||
String roleGroup = userService.selectUserRoleGroup(user.getUserId());
|
||||
String postGroup = userService.selectUserPostGroup(user.getUserId());
|
||||
model.addAttribute("user", user);
|
||||
model.addAttribute("roleGroup", roleGroup);
|
||||
model.addAttribute("postGroup", postGroup);
|
||||
return prefix + "/profile";
|
||||
}
|
||||
|
||||
}
|
@ -58,7 +58,7 @@ public interface IUserService
|
||||
* @return 结果
|
||||
*/
|
||||
public int saveUser(User user);
|
||||
|
||||
|
||||
/**
|
||||
* 修改用户信息
|
||||
*
|
||||
@ -67,6 +67,14 @@ public interface IUserService
|
||||
*/
|
||||
public int updateUser(User user);
|
||||
|
||||
/**
|
||||
* 修改用户密码信息
|
||||
*
|
||||
* @param user 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int resetUserPwd(User user);
|
||||
|
||||
/**
|
||||
* 校验用户名称是否唯一
|
||||
*
|
||||
|
@ -162,8 +162,19 @@ public class UserServiceImpl implements IUserService
|
||||
* @param user 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateUser(User user)
|
||||
{
|
||||
return userDao.updateUser(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户密码
|
||||
*
|
||||
* @param user 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int resetUserPwd(User user)
|
||||
{
|
||||
user.randomSalt();
|
||||
user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
|
||||
|
Reference in New Issue
Block a user