作者 RuoYi

修复角色的权限分配后,未实时生效问题

@@ -17,11 +17,17 @@ import com.ruoyi.common.constant.UserConstants; @@ -17,11 +17,17 @@ import com.ruoyi.common.constant.UserConstants;
17 import com.ruoyi.common.core.controller.BaseController; 17 import com.ruoyi.common.core.controller.BaseController;
18 import com.ruoyi.common.core.domain.AjaxResult; 18 import com.ruoyi.common.core.domain.AjaxResult;
19 import com.ruoyi.common.core.domain.entity.SysRole; 19 import com.ruoyi.common.core.domain.entity.SysRole;
  20 +import com.ruoyi.common.core.domain.model.LoginUser;
20 import com.ruoyi.common.core.page.TableDataInfo; 21 import com.ruoyi.common.core.page.TableDataInfo;
21 import com.ruoyi.common.enums.BusinessType; 22 import com.ruoyi.common.enums.BusinessType;
22 import com.ruoyi.common.utils.SecurityUtils; 23 import com.ruoyi.common.utils.SecurityUtils;
  24 +import com.ruoyi.common.utils.ServletUtils;
  25 +import com.ruoyi.common.utils.StringUtils;
23 import com.ruoyi.common.utils.poi.ExcelUtil; 26 import com.ruoyi.common.utils.poi.ExcelUtil;
  27 +import com.ruoyi.framework.web.service.SysPermissionService;
  28 +import com.ruoyi.framework.web.service.TokenService;
24 import com.ruoyi.system.service.ISysRoleService; 29 import com.ruoyi.system.service.ISysRoleService;
  30 +import com.ruoyi.system.service.ISysUserService;
25 31
26 /** 32 /**
27 * 角色信息 33 * 角色信息
@@ -35,6 +41,15 @@ public class SysRoleController extends BaseController @@ -35,6 +41,15 @@ public class SysRoleController extends BaseController
35 @Autowired 41 @Autowired
36 private ISysRoleService roleService; 42 private ISysRoleService roleService;
37 43
  44 + @Autowired
  45 + private TokenService tokenService;
  46 +
  47 + @Autowired
  48 + private SysPermissionService permissionService;
  49 +
  50 + @Autowired
  51 + private ISysUserService userService;
  52 +
38 @PreAuthorize("@ss.hasPermi('system:role:list')") 53 @PreAuthorize("@ss.hasPermi('system:role:list')")
39 @GetMapping("/list") 54 @GetMapping("/list")
40 public TableDataInfo list(SysRole role) 55 public TableDataInfo list(SysRole role)
@@ -103,7 +118,20 @@ public class SysRoleController extends BaseController @@ -103,7 +118,20 @@ public class SysRoleController extends BaseController
103 return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); 118 return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
104 } 119 }
105 role.setUpdateBy(SecurityUtils.getUsername()); 120 role.setUpdateBy(SecurityUtils.getUsername());
106 - return toAjax(roleService.updateRole(role)); 121 +
  122 + if (roleService.updateRole(role) > 0)
  123 + {
  124 + // 更新缓存用户权限
  125 + LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  126 + if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
  127 + {
  128 + loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
  129 + loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
  130 + tokenService.setLoginUser(loginUser);
  131 + }
  132 + return AjaxResult.success();
  133 + }
  134 + return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
107 } 135 }
108 136
109 /** 137 /**