Search in sources :

Example 1 with UserInfoDTO

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;
}
Also used : SysMenu(com.hccake.ballcat.system.model.entity.SysMenu) SysRole(com.hccake.ballcat.system.model.entity.SysRole) UserInfoDTO(com.hccake.ballcat.system.model.dto.UserInfoDTO)

Example 2 with 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);
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) SysUser(com.hccake.ballcat.system.model.entity.SysUser) UserInfoDTO(com.hccake.ballcat.system.model.dto.UserInfoDTO)

Aggregations

UserInfoDTO (com.hccake.ballcat.system.model.dto.UserInfoDTO)2 SysMenu (com.hccake.ballcat.system.model.entity.SysMenu)1 SysRole (com.hccake.ballcat.system.model.entity.SysRole)1 SysUser (com.hccake.ballcat.system.model.entity.SysUser)1 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)1