若依开源1.1.2发布

This commit is contained in:
RuoYi
2018-05-06 12:43:07 +08:00
parent 6f6a9c8ca0
commit 9d18d298e7
33 changed files with 419 additions and 65 deletions

View File

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

View File

@ -58,6 +58,11 @@ public class BaseController
{
return ShiroUtils.getUser();
}
public void setUser(User user)
{
ShiroUtils.setUser(user);
}
public Long getUserId()
{

View File

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

View File

@ -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";
}
}

View File

@ -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);
/**
* 校验用户名称是否唯一
*

View File

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