diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java index aaa39869..6c0484a1 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/com/ruoyi/common/satoken/utils/LoginHelper.java @@ -1,9 +1,10 @@ package com.ruoyi.common.satoken.utils; import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONObject; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.enums.DeviceType; import com.ruoyi.common.core.enums.UserType; @@ -38,8 +39,7 @@ public class LoginHelper { */ public static void login(LoginUser loginUser) { SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); - StpUtil.login(loginUser.getLoginId()); - setLoginUser(loginUser); + StpUtil.login(loginUser.getLoginId(), new SaLoginModel().setExtra(LOGIN_USER_KEY, loginUser)); } /** @@ -50,15 +50,10 @@ public class LoginHelper { */ public static void loginByDevice(LoginUser loginUser, DeviceType deviceType) { SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); - StpUtil.login(loginUser.getLoginId(), deviceType.getDevice()); - setLoginUser(loginUser); - } - - /** - * 设置用户数据(多级缓存) - */ - public static void setLoginUser(LoginUser loginUser) { - StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); + StpUtil.login(loginUser.getLoginId(), + new SaLoginModel() + .setDevice(deviceType.getDevice()) + .setExtra(LOGIN_USER_KEY, loginUser)); } /** @@ -69,7 +64,7 @@ public class LoginHelper { if (loginUser != null) { return loginUser; } - loginUser = (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY); + loginUser = ((JSONObject) StpUtil.getExtra(LOGIN_USER_KEY)).toBean(LoginUser.class); SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); return loginUser; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index 2a3219aa..d2a19586 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -9,11 +9,9 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; -import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPermissionService; @@ -107,15 +105,6 @@ public class SysRoleController extends BaseController { return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); } if (roleService.updateRole(role) > 0) { - // 更新缓存用户权限 - LoginUser loginUser = LoginHelper.getLoginUser(); - Long userId = loginUser.getUserId(); - if (!LoginHelper.isAdmin(userId)) { - SysUser sysUser = new SysUser(); - sysUser.setUserId(userId); - loginUser.setMenuPermission(permissionService.getMenuPermission(sysUser)); - LoginHelper.setLoginUser(loginUser); - } return R.ok(); } return R.fail("修改角色'" + role.getRoleName() + "'失败,请联系管理员");