实际已分配权限,但操作提示无权限
- **问题描述**
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. 检查特殊数据权限,发现没有启用...
点击下载文档
本文2024-09-16 22:13:39发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-46752.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章