From 4358621473c730f60642b0a0ba88740dc56aa0c4 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Mon, 21 Oct 2024 10:24:45 +0800
Subject: [PATCH] 优化权限更新后同步缓存
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 4ade9f6..e575d28 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -13,7 +13,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.framework.web.service.TokenService;
@@ -64,12 +64,17 @@
@GetMapping("getInfo")
public AjaxResult getInfo()
{
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+ LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser user = loginUser.getUser();
// 角色集合
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);
@@ -85,10 +90,8 @@
@GetMapping("getRouters")
public AjaxResult getRouters()
{
- LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
- // 用户信息
- SysUser user = loginUser.getUser();
- List<SysMenu> menus = menuService.selectMenuTreeByUserId(user.getUserId());
+ Long userId = SecurityUtils.getUserId();
+ List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
}
}
--
Gitblit v1.9.2