更新:单点登录后,为sysuser获取角色。

This commit is contained in:
chenyanchang
2026-05-25 23:54:47 +08:00
parent 5f25093991
commit f198ddfd55
2 changed files with 17 additions and 5 deletions

View File

@@ -163,14 +163,11 @@ public class SysLoginController
SysUser user = SecurityUtils.getLoginUser().getUser(); SysUser user = SecurityUtils.getLoginUser().getUser();
// 角色集合 // 角色集合
Set<String> roles = permissionService.getRolePermission(user); Set<String> roles = permissionService.getRolePermission(user);
// List<SysRole> sysRole = permissionService.getSysRolePermission(user);
// user.setRoles(sysRole);
// 权限集合 // 权限集合
Set<String> permissions = permissionService.getMenuPermission(user); Set<String> permissions = permissionService.getMenuPermission(user);
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("user", user); ajax.put("user", user);
ajax.put("roles", roles); ajax.put("roles", roles);
// ajax.put("sysRole", sysRole);
ajax.put("permissions", permissions); ajax.put("permissions", permissions);
return ajax; return ajax;
} }

View File

@@ -6,6 +6,7 @@ import com.ruoyi.cms.service.impl.AppUserServiceImpl;
import com.ruoyi.cms.util.StringUtil; import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.AppUser; import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginSiteUser; import com.ruoyi.common.core.domain.model.LoginSiteUser;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
@@ -18,6 +19,7 @@ import com.ruoyi.framework.manager.AsyncManager;
import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.impl.SysRoleServiceImpl;
import com.ruoyi.system.service.impl.SysUserServiceImpl; import com.ruoyi.system.service.impl.SysUserServiceImpl;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@@ -63,6 +65,9 @@ public class SsoService {
@Autowired @Autowired
private SysUserRoleMapper sysUserRoleMapper; private SysUserRoleMapper sysUserRoleMapper;
@Autowired
private SysRoleServiceImpl sysRoleService;
//一体机pc个人企业 //一体机pc个人企业
@Value("${lc_web_auth.appId}") @Value("${lc_web_auth.appId}")
String webAppId; String webAppId;
@@ -249,6 +254,11 @@ public class SsoService {
if (sysUser == null) { if (sysUser == null) {
sysUser = saveSysUser(userJson, appUser.getUserId()); sysUser = saveSysUser(userJson, appUser.getUserId());
} }
//设置角色
List<SysRole> roles = sysRoleService.selectRolesByUserId(sysUser.getUserId());
if (sysUser != null) {
sysUser.setRoles(roles);
}
//用户存在生成本系统用户的token //用户存在生成本系统用户的token
String token = loginSysUser(sysUser, userJson.getString("userName")); String token = loginSysUser(sysUser, userJson.getString("userName"));
JSONObject backJson = new JSONObject(); JSONObject backJson = new JSONObject();
@@ -330,10 +340,15 @@ public class SsoService {
} else { } else {
sysUser = sysUserService.selectUserById(userJson.getLong("userId")); sysUser = sysUserService.selectUserById(userJson.getLong("userId"));
} }
if (sysUser == null) { if (sysUser == null) {
sysUser = saveSysUser(userJson, appUserId); sysUser = saveSysUser(userJson, appUserId);
} }
//设置角色
List<SysRole> roles = sysRoleService.selectRolesByUserId(sysUser.getUserId());
if (sysUser != null) {
sysUser.setRoles(roles);
}
//用户存在生成本系统用户的token //用户存在生成本系统用户的token
String token = loginSysUser(sysUser, userJson.getString("userName")); String token = loginSysUser(sysUser, userJson.getString("userName"));
JSONObject backJson = new JSONObject(); JSONObject backJson = new JSONObject();
@@ -493,7 +508,7 @@ public class SsoService {
JSONArray roles = userJson.getJSONArray("roles"); JSONArray roles = userJson.getJSONArray("roles");
if (CollectionUtils.isNotEmpty(roles) && roles.size() != 0) { if (CollectionUtils.isNotEmpty(roles) && roles.size() != 0) {
List<SysUserRole> list = new ArrayList<>(); List<SysUserRole> list = new ArrayList<>();
for (int i=0; i<roles.size(); i++) { for (int i = 0; i < roles.size(); i++) {
JSONObject json = roles.getJSONObject(i); JSONObject json = roles.getJSONObject(i);
SysUserRole sysUserRole = new SysUserRole(); SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setRoleId(json.getLong("roleId")); sysUserRole.setRoleId(json.getLong("roleId"));