From cea2f5013782770a2cc99cc89b14cf5c2869bca5 Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期二, 18 八月 2026 11:29:32 +0800
Subject: [PATCH] feat(security): add role codes to LoginUser info and provide utility methods
---
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
index 5a8d019..da7b82f 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
@@ -57,6 +57,12 @@
@Resource
@Lazy // 鎳掑姞杞斤紝閬垮厤寰幆渚濊禆
private AdminUserService adminUserService;
+ @Resource
+ @Lazy
+ private cn.iocoder.yudao.module.system.service.permission.PermissionService permissionService;
+ @Resource
+ @Lazy
+ private cn.iocoder.yudao.module.system.service.permission.RoleService roleService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -226,8 +232,18 @@
}
if (userType.equals(UserTypeEnum.ADMIN.getValue())) {
AdminUserDO user = adminUserService.getUser(userId);
- return MapUtil.builder(LoginUser.INFO_KEY_NICKNAME, user.getNickname())
- .put(LoginUser.INFO_KEY_DEPT_ID, StrUtil.toStringOrNull(user.getDeptId())).build();
+ java.util.Map<String, String> info = new java.util.HashMap<>();
+ info.put(LoginUser.INFO_KEY_NICKNAME, user.getNickname());
+ info.put(LoginUser.INFO_KEY_DEPT_ID, cn.hutool.core.util.StrUtil.toStringOrNull(user.getDeptId()));
+ // Fetch roles and put into info
+ java.util.Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(userId);
+ if (cn.hutool.core.collection.CollUtil.isNotEmpty(roleIds)) {
+ java.util.List<cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO> roles = roleService.getRoleList(roleIds);
+ if (cn.hutool.core.collection.CollUtil.isNotEmpty(roles)) {
+ info.put(LoginUser.INFO_KEY_ROLE_CODES, cn.hutool.core.collection.CollUtil.join(roles, ",", cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO::getCode));
+ }
+ }
+ return info;
} else if (userType.equals(UserTypeEnum.MEMBER.getValue())) {
// 娉ㄦ剰锛氱洰鍓� Member 鏆傛椂涓嶈鍙栵紝鍙互鎸夐渶瀹炵幇
return Collections.emptyMap();
--
Gitblit v1.9.3