Просмотр исходного кода

优化权限更新后同步缓存

RuoYi 1 год назад
Родитель
Сommit
1899a832b9

+ 11 - 1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java

@@ -27,6 +27,7 @@ import com.ruoyi.common.log.annotation.Log;
27 27
 import com.ruoyi.common.log.enums.BusinessType;
28 28
 import com.ruoyi.common.security.annotation.InnerAuth;
29 29
 import com.ruoyi.common.security.annotation.RequiresPermissions;
30
+import com.ruoyi.common.security.service.TokenService;
30 31
 import com.ruoyi.common.security.utils.SecurityUtils;
31 32
 import com.ruoyi.system.api.domain.SysDept;
32 33
 import com.ruoyi.system.api.domain.SysRole;
@@ -66,6 +67,9 @@ public class SysUserController extends BaseController
66 67
     @Autowired
67 68
     private ISysConfigService configService;
68 69
 
70
+    @Autowired
71
+    private TokenService tokenService;
72
+
69 73
     /**
70 74
      * 获取用户列表
71 75
      */
@@ -167,11 +171,17 @@ public class SysUserController extends BaseController
167 171
     @GetMapping("getInfo")
168 172
     public AjaxResult getInfo()
169 173
     {
170
-        SysUser user = userService.selectUserById(SecurityUtils.getUserId());
174
+        LoginUser loginUser = SecurityUtils.getLoginUser();
175
+        SysUser user = loginUser.getSysUser();
171 176
         // 角色集合
172 177
         Set<String> roles = permissionService.getRolePermission(user);
173 178
         // 权限集合
174 179
         Set<String> permissions = permissionService.getMenuPermission(user);
180
+        if (!loginUser.getPermissions().equals(permissions))
181
+        {
182
+            loginUser.setPermissions(permissions);
183
+            tokenService.refreshToken(loginUser);
184
+        }
175 185
         AjaxResult ajax = AjaxResult.success();
176 186
         ajax.put("user", user);
177 187
         ajax.put("roles", roles);