From 1899a832b95c1060b7cdf2dd35ceaa0d7a0852d7 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Mon, 21 Oct 2024 17:15:30 +0800
Subject: [PATCH] 优化权限更新后同步缓存
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 64 +++++++++++++++++++++-----------
1 files changed, 42 insertions(+), 22 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 11920bd..c7c4ca7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -17,7 +17,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
@@ -28,6 +27,7 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysDept;
import com.ruoyi.system.api.domain.SysRole;
@@ -67,6 +67,9 @@
@Autowired
private ISysConfigService configService;
+ @Autowired
+ private TokenService tokenService;
+
/**
* 获取用户列表
*/
@@ -98,7 +101,7 @@
List<SysUser> userList = util.importExcel(file.getInputStream());
String operName = SecurityUtils.getUsername();
String message = userService.importUser(userList, updateSupport, operName);
- return AjaxResult.success(message);
+ return success(message);
}
@PostMapping("/importTemplate")
@@ -143,11 +146,21 @@
{
return R.fail("当前系统没有开启注册功能!");
}
- if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(sysUser)))
+ if (!userService.checkUserNameUnique(sysUser))
{
return R.fail("保存用户'" + username + "'失败,注册账号已存在");
}
return R.ok(userService.registerUser(sysUser));
+ }
+
+ /**
+ *记录用户登录IP地址和登录时间
+ */
+ @InnerAuth
+ @PutMapping("/recordlogin")
+ public R<Boolean> recordlogin(@RequestBody SysUser sysUser)
+ {
+ return R.ok(userService.updateUserProfile(sysUser));
}
/**
@@ -158,11 +171,17 @@
@GetMapping("getInfo")
public AjaxResult getInfo()
{
- SysUser user = userService.selectUserById(SecurityUtils.getUserId());
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ SysUser user = loginUser.getSysUser();
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
// 权限集合
Set<String> permissions = permissionService.getMenuPermission(user);
+ if (!loginUser.getPermissions().equals(permissions))
+ {
+ loginUser.setPermissions(permissions);
+ tokenService.refreshToken(loginUser);
+ }
AjaxResult ajax = AjaxResult.success();
ajax.put("user", user);
ajax.put("roles", roles);
@@ -200,19 +219,19 @@
@PostMapping
public AjaxResult add(@Validated @RequestBody SysUser user)
{
- if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
+ deptService.checkDeptDataScope(user.getDeptId());
+ roleService.checkRoleDataScope(user.getRoleIds());
+ if (!userService.checkUserNameUnique(user))
{
- return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+ return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
- else if (StringUtils.isNotEmpty(user.getPhonenumber())
- && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+ else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
{
- return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+ return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
}
- else if (StringUtils.isNotEmpty(user.getEmail())
- && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+ else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
{
- return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+ return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setCreateBy(SecurityUtils.getUsername());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
@@ -229,19 +248,19 @@
{
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
- if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
+ deptService.checkDeptDataScope(user.getDeptId());
+ roleService.checkRoleDataScope(user.getRoleIds());
+ if (!userService.checkUserNameUnique(user))
{
- return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+ return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
}
- else if (StringUtils.isNotEmpty(user.getPhonenumber())
- && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+ else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
{
- return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+ return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
}
- else if (StringUtils.isNotEmpty(user.getEmail())
- && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+ else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
{
- return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+ return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setUpdateBy(SecurityUtils.getUsername());
return toAjax(userService.updateUser(user));
@@ -257,7 +276,7 @@
{
if (ArrayUtils.contains(userIds, SecurityUtils.getUserId()))
{
- return AjaxResult.error("当前用户不能删除");
+ return error("当前用户不能删除");
}
return toAjax(userService.deleteUserByIds(userIds));
}
@@ -315,6 +334,7 @@
public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
{
userService.checkUserDataScope(userId);
+ roleService.checkRoleDataScope(roleIds);
userService.insertUserAuth(userId, roleIds);
return success();
}
@@ -326,6 +346,6 @@
@GetMapping("/deptTree")
public AjaxResult deptTree(SysDept dept)
{
- return AjaxResult.success(deptService.selectDeptTreeList(dept));
+ return success(deptService.selectDeptTreeList(dept));
}
}
--
Gitblit v1.9.3