实际已分配权限,但操作提示无权限

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

实际已分配权限,但操作提示无权限

- **问题描述** 1. 同步权限项后重新分配权限后,问题还是存在,说明此问题不是由于权限项失效导致。 2. 检查特殊数据权限,发现没有启用了拥有者有权。 - **问题分析** 1. 在bos开发工具中,新增异常断点,然后根据调用链,我们发现是在**handleServiceBefore**方法中,执行了**handleWithEnableDataPermision**方法,然后报错的。 ![异常断点.webp](/download/01009b2716967ba44ae284085dd7fa4074ad.webp) 2. 继续跟踪代码,我们发现,最终的报错是**com.kingdee.eas.base.permission.app.service.DataPermissionService.checkPermission(IObjectPK, IObjectPK, String, Object)** 这个方法中的**permissionOrgPK**为空了,导致抛出了一个没有权限的报错。 ![1.webp](/download/0100f7a0295c6abf46d2a6173a2366b1c568.webp) 3. 分析**PermissionUtil.getPermissionOrgPK**方法,最终我们发现,因为获取用户的财务组织为空了,导致的报错,我们设置一下当前登录的财务组织,就不会报错了,那么为什么是因为这个原因呢,我们具体往下分析。 ![2.webp](/download/010056a8693fa37f470793fe5dddd522234b.webp) 4. 我们发现,在**PermissionUtil.getCurrentOrgPK**方法中,如果参数==orgType==为-1,那么直接就返回了,所以也就不会报错了,而这个**orgType**,我们通过调用链分析,发现是在**handleWithEnableDataPermision**方法中查找==T_PM_PermItem==获取的,这个是存储我们定义的权限项的表。 ![3.webp](/download/01008775eb52742348439b683806d1849bd8.webp) ![4.webp](/download/0100b9174f774e29474d997d240751cdcca2.webp) 5. 通过bos开发工具,打开报错的权限项,我们发现,权限项的扩展属性有一个==orgType==,在这个扩展属性中,我们可以设置校验权限项的主业务组织范围,这个设置了company财务组织,所以验权的时候,会根据当前财务组织,去校验,所以当前登录用户的company财务组织不能为空。 ![5.webp](/download/01002a75419e55ba4877bc57d03d4bb6c3aa.webp) - **问题解决** 在进行业务操作之前,通过此代码设置 ```language //设置当前登录用户的财务组织 ContextUtil.setCurrentFIUnit(getContext(), company); ``` ==权限项报错可能是设置的原因,如此处的扩展属性orgType==

实际已分配权限,但操作提示无权限

- **问题描述**1. 同步权限项后重新分配权限后,问题还是存在,说明此问题不是由于权限项失效导致。2. 检查特殊数据权限,发现没有启用...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息