From 1c52e77d77d0e924a1df0725c0748afde172ad68 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期五, 30 十月 2026 16:51:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
index ed7e574..8b08363 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
@@ -254,15 +254,18 @@
// 绠$悊鍛樻嫢鏈夋墍鏈夋潈闄愶紝璺宠繃
continue;
}
- // 鍒ゆ柇璇ョ敤鎴锋槸鍚︽嫢鏈夋瑙掕壊
+ boolean previouslyHadRole = loginUser.getUser().getRoles() != null
+ && loginUser.getUser().getRoles().stream().anyMatch(r -> roleId.equals(r.getRoleId()));
+ // 鏉冮檺璁$畻浼氬悓鏃惰鍙栧綋鍓嶈鑹插叧绯伙紝瑕嗙洊鏂板瑙掕壊鏈繘鍏ユ棫 token 鐨勬儏鍐点��
+ java.util.Set<String> permissions = permissionService.getMenuPermission(loginUser.getUser());
boolean hasRole = loginUser.getUser().getRoles() != null
&& loginUser.getUser().getRoles().stream().anyMatch(r -> roleId.equals(r.getRoleId()));
- if (!hasRole)
+ if (!previouslyHadRole && !hasRole)
{
continue;
}
// 鍒锋柊鏉冮檺缂撳瓨
- loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
+ loginUser.setPermissions(permissions);
refreshToken(loginUser);
log.info("瑙掕壊[{}]鏉冮檺鍙樻洿锛屽凡鍒锋柊鍦ㄧ嚎鐢ㄦ埛[{}]鐨勬潈闄愮紦瀛�", roleId, loginUser.getUsername());
}
--
Gitblit v1.9.3