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

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

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

查看: 8103|回复: 4

数据权限配置后不起作用

[复制链接]
发表于 2017-9-4 11:28:35 | 显示全部楼层 |阅读模式
      周六(2017-09-02)的时候,有一个菜单配置了权限,根据文档的说明,一步步的设置完成后,一直不起作用,仔细检查了很久还是不行,眼看下班了。今天周一(2017-09-04)又倒腾的一中午,然后打断点跟踪了一下权限的代码,具体还没来的急看是哪块代码出的问题,但是问题的原因已经定位出来。
      由于之前在做测试,就在一级菜单“系统管理”中配置了一个二级菜单测试使用,并且配置了一个按钮权限。而后来业务菜单确定后,在业务菜单下又配置了一份相同路径(菜单地址url相同“tSMeetingController.do?list”)的二级菜单,也配置了三个按钮权限。
      然后测试,业务菜单下的按钮权限一直不起作用。终于打断点找到原因:不知为何在SystemServiceImpl的
public Set<String> getOperationCodesByUserIdAndFunctionId(String userId, String functionId)方法中调用的functionId变成了测试菜单的functionId,具体原因没有深入去看,然后我删除此测试菜单后,权限获取就正常了。

      这应该是jeecg的一个bug,暂时没有去看具体出问题的地方,等有空的时候,再做研究,如果你也遇到类似问题,不妨试试我的方法先规避一下。
 楼主| 发表于 2017-9-4 11:35:44 | 显示全部楼层
找到了,在AuthInterceptor的131-135行,直接根据functionUrl匹配一下,取了第0号的菜单。。。
  1. List<TSFunction> functions = systemService.findByProperty(TSFunction.class, "functionUrl", realRequestPath);

  2.                                 if (functions.size()>0){
  3.                                         functionId = functions.get(0).getId();
  4.                                 }
复制代码
发表于 2017-9-4 11:37:35 | 显示全部楼层
我也遇到了类似的问题,主要是,针对想对系统管理菜单下组织机构权限进行进一步的权限约束,比如有一个次级的管理员可以进行权限操作但仅限于自己的项目,结果设置后不起作用.
 楼主| 发表于 2017-9-4 15:25:43 | 显示全部楼层
long 发表于 2017-9-4 11:37
我也遇到了类似的问题,主要是,针对想对系统管理菜单下组织机构权限进行进一步的权限约束,比如有一个次级的 ...

可以将Controler中的请求方法copy一份,另起个名,然后配置菜单的url不要重复,就能暂时规避这种问题。
发表于 2017-9-4 15:50:39 | 显示全部楼层
ok,多谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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