【BOS基础系统_权限】二开单据功能权限/数据权限/特殊数据权限开发指导原创
金蝶云社区-汪伟康
汪伟康
8人赞赏了该文章 2127次浏览 未经作者许可,禁止转载编辑于2022年11月14日 13:58:13

问题:二开单据的二开权限项如何开发支持 普通数据权限(授权规则)和特殊数据权限

背景:该指导需要先开发好二开单据和二开权限项,此处如有疑问可参考附件先了解并创建好二开权限项

1.如何让二开单据支持授权规则(授权规则树中有该二开单据)

1、有权限项关联该实体

2、权限项中定义扩展属性enableDataPermission为true;

3、生成子系统树

4、发布权限项部署完成之后,登录administrator-用户管理-文件-同步权限数据

2.如何让二开单据支持特殊数据权限(特殊数据权限树中有该二开单据

1、权限项有关联实体

2、权限项中定义扩展属性enableDataPermission为true

3、在服务器目录中(注意每个实例都要改)${EAS_HOME}/server/profiles/server*/config/EAS_PermissionConfiguration.xml(注意如果是本地bos工具启动的服务器路径应该是在工作空间的runtime路径下)维护单据实体配置项(维护在special-data-permissions节点里面),修改该配置文件之后要重启服务器才能生效

4、发布权限项部署完成之后,登录administrator-用户管理-文件-同步权限数据


3、如何让功能权限和数据权限生效

  • 3.1、需设置单据的业务属性(组织类型),和权限项的主业务组织类型保持一致

image.png

image.png

此处建议了解权限项主业务组织类型的影响:https://vip.kingdee.com/article/50020183096029952


  • 3.2、使功能权限生效(此处可理解事件验权)

1)、查看权限建议引用对象中绑定单据实体对应的ListUI,对应引用属性绑定实体ListUI的界面加载事件属性(如:ActionOnload)即可

2)、增删改权限建议引用对象中绑定单据实体对应的EditUI,对应引用属性绑定实体EditUI的对应增删改,审核,提交等之类的界面加载事件属性(如:ActionEdit)即可


此处疑问:web单据没有ListUI,EditUI类,怎么验权呢,不用担心,下面数据验权的配置步骤可以覆盖web单据的增删改查数据验权,可以说如果数据验权配置好了,那么也是一样能控制住权限。


  • 3.3、使数据验权生效(即授权规则+特殊数据权限生效)

单据查看权限项建议:

1)、引用对象中绑定实体的query对象(单据序时簿列表查看验权)

2)、引用对象中绑定实体,对应引用属性中绑定实体超类的所有getValue方法(单据单个查看验权)

单据增删改权限项建议:引用对象中绑定实体,且在引用属性中绑定实体对应的增删改方法(如果没有,就选择父类的增删改方法(对应方法名为addnew,save,update,submit等重载方法都勾选上即可))

每次修改过权限项的信息,发布之后,记得同步权限项


注释:

功能权限 验权和  数据验权的区别:

功能权限:可以理解为 前端 调用了权限这边提供的rpc验权接口来验权(主要参数:用户,组织,权限项)

数据权限:EAS框架在基类的增删改查这些通同的业务方法中添加了前置服务校验(包含验权服务),从而走到后台验权服务(PermissionServiceAdapter.execute())根据框架传过来的上下文以及单据数据来 验权。


标准产品权限项案例:

image.png

image.png


image.png

image.png

image.png

赞 8