浏览代码

update 更改角色刷新缓存

疯狂的狮子li 3 年之前
父节点
当前提交
dff7d70f0a

+ 0 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java

@@ -11,7 +11,6 @@ import com.ruoyi.common.utils.LoginUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.domain.vo.RouterVo;
 import com.ruoyi.system.service.ISysMenuService;
-import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.SysLoginService;
 import com.ruoyi.system.service.SysPermissionService;
 import io.swagger.annotations.Api;
@@ -42,7 +41,6 @@ public class SysLoginController {
 
     private final SysLoginService loginService;
     private final ISysMenuService menuService;
-    private final ISysUserService userService;
     private final SysPermissionService permissionService;
 
     /**

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java

@@ -7,12 +7,16 @@ import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.LoginUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysUserRole;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.SysPermissionService;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +40,7 @@ public class SysRoleController extends BaseController {
 
     private final ISysRoleService roleService;
     private final ISysUserService userService;
+    private final SysPermissionService permissionService;
 
     @ApiOperation("查询角色信息列表")
     @SaCheckPermission("system:role:list")
@@ -97,6 +102,13 @@ public class SysRoleController extends BaseController {
         }
 
         if (roleService.updateRole(role) > 0) {
+            // 更新缓存用户权限
+            LoginUser loginUser = getLoginUser();
+            SysUser sysUser = userService.selectUserById(loginUser.getUserId());
+            if (StringUtils.isNotNull(sysUser) && !sysUser.isAdmin()) {
+                loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser));
+                LoginUtils.setLoginUser(loginUser);
+            }
             return AjaxResult.success();
         }
         return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@@ -70,7 +70,7 @@ public class BaseController {
     /**
      * 获取用户缓存信息
      */
-    public LoginUser getUser() {
+    public LoginUser getLoginUser() {
         return LoginUtils.getLoginUser();
     }
 

+ 8 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java

@@ -24,7 +24,7 @@ public class LoginUtils {
      */
     public static void login(LoginUser loginUser, UserType userType) {
         StpUtil.login(userType.getUserType() + loginUser.getUserId());
-        StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
+        setLoginUser(loginUser);
     }
 
     /**
@@ -34,6 +34,13 @@ public class LoginUtils {
      */
     public static void loginByDevice(LoginUser loginUser, UserType userType, DeviceType deviceType) {
         StpUtil.login(userType.getUserType() + loginUser.getUserId(), deviceType.getDevice());
+        setLoginUser(loginUser);
+    }
+
+    /**
+     * 设置用户数据
+     */
+    public static void setLoginUser(LoginUser loginUser) {
         StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
     }