| | |
| | | import com.ruoyi.common.core.text.Convert; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.system.api.domain.SysRole; |
| | | import com.ruoyi.system.domain.SysMenu; |
| | | import com.ruoyi.system.domain.vo.MetaVo; |
| | | import com.ruoyi.system.domain.vo.RouterVo; |
| | | import com.ruoyi.system.domain.vo.TreeSelect; |
| | | import com.ruoyi.system.mapper.SysMenuMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMenuMapper; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private SysMenuMapper menuMapper; |
| | | |
| | | @Autowired |
| | | private SysRoleMapper roleMapper; |
| | | |
| | | @Autowired |
| | | private SysRoleMenuMapper roleMenuMapper; |
| | |
| | | @Override |
| | | public List<Long> selectMenuListByRoleId(Long roleId) |
| | | { |
| | | SysRole role = roleMapper.selectRoleById(roleId); |
| | | return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); |
| | | // 恒传 false:原样返回 sys_role_menu 里的全部 id,不再按角色的 menu_check_strictly |
| | | // 把「本身是其他已授权菜单父节点」的 id 剔掉(剔除后得到的是叶子集)。 |
| | | // 本方法的唯一消费方是角色表单页的三级权限网格,它按「叶子为种子、祖先由后代派生」渲染, |
| | | // 需要角色的**原始**授权集合:只有叶子的话,编辑者看不见的分支连 id 都拿不到, |
| | | // 一旦保存(updateRole 是全量删后插)就会把那部分目录/页面静默清掉。 |
| | | // 顺带,menu_check_strictly 这一列也就不再被读取了。 |
| | | return menuMapper.selectMenuListByRoleId(roleId, false); |
| | | } |
| | | |
| | | /** |