use of com.hccake.ballcat.system.model.dto.UserInfoDTO in project ballcat by ballcat-projects.
the class SysUserServiceImpl method findUserInfo.
/**
* 通过查用户的全部信息
* @param sysUser 用户
* @return 用户信息
*/
@Override
public UserInfoDTO findUserInfo(SysUser sysUser) {
UserInfoDTO userInfoDTO = new UserInfoDTO();
userInfoDTO.setSysUser(sysUser);
// 超级管理员拥有所有角色
List<SysRole> roleList;
if (adminUserChecker.isAdminUser(sysUser)) {
roleList = sysRoleService.list();
} else {
roleList = sysUserRoleService.listRoles(sysUser.getUserId());
}
// 设置角色标识
Set<String> roleCodes = new HashSet<>();
for (SysRole role : roleList) {
roleCodes.add(role.getCode());
}
userInfoDTO.setRoles(new HashSet<>(roleList));
userInfoDTO.setRoleCodes(roleCodes);
// 设置权限列表(permission)
Set<String> permissions = new HashSet<>();
Set<SysMenu> menus = new HashSet<>();
for (String roleCode : roleCodes) {
List<SysMenu> sysMenuList = sysMenuService.listByRoleCode(roleCode);
menus.addAll(sysMenuList);
List<String> permissionList = sysMenuList.stream().map(SysMenu::getPermission).filter(StrUtil::isNotEmpty).collect(Collectors.toList());
permissions.addAll(permissionList);
}
userInfoDTO.setMenus(menus);
userInfoDTO.setPermissions(permissions);
return userInfoDTO;
}
use of com.hccake.ballcat.system.model.dto.UserInfoDTO in project ballcat by ballcat-projects.
the class SysUserDetailsServiceImpl method loadUserByUsername.
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
SysUser sysUser = sysUserService.getByUsername(username);
if (sysUser == null) {
log.error("登陆:用户名错误,用户名:{}", username);
throw new UsernameNotFoundException("username error!");
}
UserInfoDTO userInfoDTO = sysUserService.findUserInfo(sysUser);
return getUserDetailsByUserInfo(userInfoDTO);
}
Aggregations