关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 8411|回复: 0

基础权限-得到用户菜单列表方法

[复制链接]
发表于 2016-11-15 14:39:35 | 显示全部楼层 |阅读模式
从源码上看,得到用户菜单的逻辑为:用户自身拥有的角色对应的功能菜单集合+ 用户所在机构拥有的角色对应的功能菜单集合。
关键代码如下,关注hqlsb2对应的sql。 请确认一下where条件中的b.tsRole.id=c.id 是否有问题? 角色ID与功能ID关联?

private Map<String, TSFunction> getUserFunction(TSUser user) {
         …………
         StringBuilder hqlsb1=new StringBuilder("select distinct f from TSFunction f,TSRoleFunction rf,TSRoleUser ru  ")

                  .append("where ru.TSRole.id=rf.TSRole.id and rf.TSFunction.id=f.id and ru.TSUser.id=? ");

         StringBuilder hqlsb2=new StringBuilder("select distinct c from TSFunction c,TSRoleOrg b,TSUserOrg a ")

                  .append("where a.tsDepart.id=b.tsDepart.id and b.tsRole.id=c.id and a.tsUser.id=?");


         List<TSFunction> list1 = systemService.findHql(hqlsb1.toString(),user.getId());
         List<TSFunction> list2 = systemService.findHql(hqlsb2.toString(),user.getId());


         for(TSFunction function:list1){
                  loginActionlist.put(function.getId(),function);
         }
         for(TSFunction function:list2){
                  loginActionlist.put(function.getId(),function);
         }
         …………
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表