From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java | 91 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 70 insertions(+), 21 deletions(-) diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index db80f08..e2c9236 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -3,16 +3,18 @@ import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.constant.TenantConstants; -import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.enums.UserType; import java.util.Set; + /** * 鐧诲綍閴存潈鍔╂墜 @@ -35,6 +37,7 @@ public static final String USER_NAME_KEY = "userName"; public static final String DEPT_KEY = "deptId"; public static final String DEPT_NAME_KEY = "deptName"; + public static final String DEPT_CATEGORY_KEY = "deptCategory"; public static final String CLIENT_KEY = "clientid"; /** @@ -49,14 +52,12 @@ StpUtil.login(loginUser.getLoginId(), model.setExtra(TENANT_KEY, loginUser.getTenantId()) .setExtra(USER_KEY, loginUser.getUserId()) - .setExtra(DEPT_KEY, loginUser.getDeptId()) - .setExtra(TENANT_KEY, loginUser.getTenantId()) - .setExtra(DEPT_NAME_KEY, loginUser.getDeptName()) .setExtra(USER_NAME_KEY, loginUser.getUsername()) + .setExtra(DEPT_KEY, loginUser.getDeptId()) + .setExtra(DEPT_NAME_KEY, loginUser.getDeptName()) + .setExtra(DEPT_CATEGORY_KEY, loginUser.getDeptCategory()) ); - SaSession tokenSession = StpUtil.getTokenSession(); - tokenSession.updateTimeout(model.getTimeout()); - tokenSession.set(LOGIN_USER_KEY, loginUser); + StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); } /** @@ -89,6 +90,20 @@ } /** + * 鑾峰彇鐢ㄦ埛id + */ + public static String getUserIdStr() { + return Convert.toStr(getExtra(USER_KEY)); + } + + /** + * 鑾峰彇鐢ㄦ埛璐︽埛 + */ + public static String getUsername() { + return Convert.toStr(getExtra(USER_NAME_KEY)); + } + + /** * 鑾峰彇绉熸埛ID */ public static String getTenantId() { @@ -102,20 +117,32 @@ return Convert.toLong(getExtra(DEPT_KEY)); } + /** + * 鑾峰彇閮ㄩ棬鍚� + */ + public static String getDeptName() { + return Convert.toStr(getExtra(DEPT_NAME_KEY)); + } + + /** + * 鑾峰彇閮ㄩ棬绫诲埆缂栫爜 + */ + public static String getDeptCategory() { + return Convert.toStr(getExtra(DEPT_CATEGORY_KEY)); + } + + /** + * 鑾峰彇褰撳墠 Token 鐨勬墿灞曚俊鎭� + * + * @param key 閿�� + * @return 瀵瑰簲鐨勬墿灞曟暟鎹� + */ private static Object getExtra(String key) { try { return StpUtil.getExtra(key); } catch (Exception e) { return null; } - - } - - /** - * 鑾峰彇鐢ㄦ埛璐︽埛 - */ - public static String getUsername() { - return getLoginUser().getUsername(); } /** @@ -133,29 +160,51 @@ * @return 缁撴灉 */ public static boolean isSuperAdmin(Long userId) { - return UserConstants.SUPER_ADMIN_ID.equals(userId); - } - - public static boolean isSuperAdmin() { - return isSuperAdmin(getUserId()); + return SystemConstants.SUPER_ADMIN_ID.equals(userId); } /** * 鏄惁涓鸿秴绾х鐞嗗憳 * + * @return 缁撴灉 + */ + public static boolean isSuperAdmin() { + return isSuperAdmin(getUserId()); + } + + /** + * 鏄惁涓虹鎴风鐞嗗憳 + * * @param rolePermission 瑙掕壊鏉冮檺鏍囪瘑缁� * @return 缁撴灉 */ public static boolean isTenantAdmin(Set<String> rolePermission) { + if (CollUtil.isEmpty(rolePermission)) { + return false; + } return rolePermission.contains(TenantConstants.TENANT_ADMIN_ROLE_KEY); } + /** + * 鏄惁涓虹鎴风鐞嗗憳 + * + * @return 缁撴灉 + */ public static boolean isTenantAdmin() { return Convert.toBool(isTenantAdmin(getLoginUser().getRolePermission())); } + /** + * 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚﹀凡鐧诲綍 + * + * @return 缁撴灉 + */ public static boolean isLogin() { - return getLoginUser() != null; + try { + return getLoginUser() != null; + } catch (Exception e) { + return false; + } } } -- Gitblit v1.9.3