| | |
| | | package com.ruoyi.web.controller.system; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | import com.ruoyi.system.mapper.SysMenuMapper; |
| | | import com.ruoyi.system.object.dto.SetPasswordDTO; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.core.context.SecurityContextHolder; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.ruoyi.common.constant.Constants; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.core.domain.entity.SysMenu; |
| | |
| | | */ |
| | | @Api(value = "登录控制器",tags = "登录控制器") |
| | | @RestController |
| | | @RequestMapping("/system") |
| | | public class SysLoginController { |
| | | |
| | | @Autowired |
| | |
| | | private SysPermissionService permissionService; |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private SysMenuMapper sysMenuMapper; |
| | | |
| | | /** |
| | | * 登录方法 |
| | |
| | | public AjaxResult getInfo() { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | SysUser user = loginUser.getUser(); |
| | | // 角色集合 |
| | | Set<String> roles = permissionService.getRolePermission(user); |
| | | // 权限集合 |
| | | Set<String> permissions = permissionService.getMenuPermission(user); |
| | | if (!loginUser.getPermissions().equals(permissions)) { |
| | | loginUser.setPermissions(permissions); |
| | | tokenService.refreshToken(loginUser); |
| | | } |
| | | AjaxResult ajax = AjaxResult.success(); |
| | | ajax.put("user", user); |
| | | ajax.put("roles", roles); |
| | | ajax.put("permissions", permissions); |
| | | ajax.put("permissions" ,getUserPaths(user.getUserId())); |
| | | return ajax; |
| | | } |
| | | /** |
| | | * 获取用户拥有的所有path |
| | | * @param userId 用户ID |
| | | * @return 用户拥有的所有path列表 |
| | | */ |
| | | public List<String> getUserPaths(Long userId) { |
| | | List<Long> ids = new ArrayList<>(); |
| | | // 根据用户id查询出menus |
| | | List<SysMenu> menus = sysMenuMapper.selectMenusByUserId(userId); |
| | | //将id和父类id取出 |
| | | menus.forEach(menu -> { |
| | | ids.add(menu.getMenuId()); |
| | | if (null!= menu.getParentId() && menu.getParentId() != 0) { |
| | | ids.add(menu.getParentId()); |
| | | } |
| | | }); |
| | | |
| | | if (menus.isEmpty()) { |
| | | return Collections.emptyList(); |
| | | } |
| | | |
| | | |
| | | return sysMenuMapper.getPathsByMenuIds(ids); |
| | | } |
| | | |
| | | /** |
| | | * 获取路由信息 |