作者 RuoYi

优化权限更新后同步缓存

@@ -12,9 +12,11 @@ import com.ruoyi.common.core.domain.AjaxResult; @@ -12,9 +12,11 @@ import com.ruoyi.common.core.domain.AjaxResult;
12 import com.ruoyi.common.core.domain.entity.SysMenu; 12 import com.ruoyi.common.core.domain.entity.SysMenu;
13 import com.ruoyi.common.core.domain.entity.SysUser; 13 import com.ruoyi.common.core.domain.entity.SysUser;
14 import com.ruoyi.common.core.domain.model.LoginBody; 14 import com.ruoyi.common.core.domain.model.LoginBody;
  15 +import com.ruoyi.common.core.domain.model.LoginUser;
15 import com.ruoyi.common.utils.SecurityUtils; 16 import com.ruoyi.common.utils.SecurityUtils;
16 import com.ruoyi.framework.web.service.SysLoginService; 17 import com.ruoyi.framework.web.service.SysLoginService;
17 import com.ruoyi.framework.web.service.SysPermissionService; 18 import com.ruoyi.framework.web.service.SysPermissionService;
  19 +import com.ruoyi.framework.web.service.TokenService;
18 import com.ruoyi.system.service.ISysMenuService; 20 import com.ruoyi.system.service.ISysMenuService;
19 21
20 /** 22 /**
@@ -34,6 +36,9 @@ public class SysLoginController @@ -34,6 +36,9 @@ public class SysLoginController
34 @Autowired 36 @Autowired
35 private SysPermissionService permissionService; 37 private SysPermissionService permissionService;
36 38
  39 + @Autowired
  40 + private TokenService tokenService;
  41 +
37 /** 42 /**
38 * 登录方法 43 * 登录方法
39 * 44 *
@@ -59,11 +64,17 @@ public class SysLoginController @@ -59,11 +64,17 @@ public class SysLoginController
59 @GetMapping("getInfo") 64 @GetMapping("getInfo")
60 public AjaxResult getInfo() 65 public AjaxResult getInfo()
61 { 66 {
62 - SysUser user = SecurityUtils.getLoginUser().getUser(); 67 + LoginUser loginUser = SecurityUtils.getLoginUser();
  68 + SysUser user = loginUser.getUser();
63 // 角色集合 69 // 角色集合
64 Set<String> roles = permissionService.getRolePermission(user); 70 Set<String> roles = permissionService.getRolePermission(user);
65 // 权限集合 71 // 权限集合
66 Set<String> permissions = permissionService.getMenuPermission(user); 72 Set<String> permissions = permissionService.getMenuPermission(user);
  73 + if (!loginUser.getPermissions().equals(permissions))
  74 + {
  75 + loginUser.setPermissions(permissions);
  76 + tokenService.refreshToken(loginUser);
  77 + }
67 AjaxResult ajax = AjaxResult.success(); 78 AjaxResult ajax = AjaxResult.success();
68 ajax.put("user", user); 79 ajax.put("user", user);
69 ajax.put("roles", roles); 80 ajax.put("roles", roles);