电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何通过升级程序预置追加的表单-权限项

来源:金蝶云社区作者:金蝶2024-09-232

如何通过升级程序预置追加的表单-权限项

变更记录

产品版本更新内容更新日期
V5.0.025初始版本2023/07/26


使用场景

业务实现过程中,给某个表单新增了权限项后,直接升级,那么原来拥有此表单的用户在升级之后,是没有新增权限项的权限的。本文旨在针对此种问题给出一种解决方案。


问题描述

表单业务角色(perm_busirole)原有权限项:引出、引入、新增、删除、查询、修改。



业务开展需要,后续要增加一个“分配”的权限项:



PS:表单设计器中,权限项的增加还是需要各自设置,保存表单设计时。


解决方法

权限组针对此此类问题,提供统一解决处理方案。

开发人员可新建一个自己的升级程序,示例如:

kd.bos.permission.servicehelper.AppendBusiRoleAssignPermItemUpgradeService(追加“业务角色”的“分配”权限项

重点关注下参数含义。

/**
 * 参数含义:Object[]{旧表单标识 , 旧表单的权限项, 需要新增的表单标识, 需要新增的权限项, new Long[]{三权分立时要授予权限的虚拟管理员}}。
 * 目的1:如果原来有“perm_busirole”的“修改”权,那么追加“perm_busirole”的“分配”权
 * 目的2:将 “perm_busirole”的“分配”权, 赋予 "三权分立"下的安全管理员

 */

private static List<Object[]> oldEntPerItem2NewMapList = Arrays.asList(new Object[]{"perm_busirole", kd.bos.consts.PermItemConst.ITEM_MODIFY, "perm_busirole", kd.bos.consts.PermItemConst.ITEM_ASSIGN, 

new Long[]{PermApiConst.THREE_STRATEGY_3_SECURITY_ENTRYID}}

, new Object[]{});


  • 每一个对象数组中有五个参数,按顺序代表:旧表单标识 、旧表单的权限项、需要新增的表单标识、需要新增的权限项、new Long[]{三权分立时要授予权限的虚拟管理员}。注意:旧表单所属应用需与新表单一致且新旧表单都得是需要控权的表单,因为不控权的表单,不需要追加授权

    (“控制功能权限开关打开了, 并且“操作权限控制”下面绑定了权限项, 则表示此表单要控权


  • 升级程序会根据“旧表单标识-权限项在原有直接授权、通用角色授权、业务角色授权、管理员分组授权中系统服务云范围的情况,决定是否追加“新表单标识-权限项”。


  • 第5个参数,由于“新表单标识-权限项”可能赋予到多个三权分立下的管理员类型,所以定义成Long[]。如果“新表单标识”不是系统服务云下的,此参数可设置为null。如果“新表单标识”是系统服务云下的,可使用cosmic账户登录平台基线a,业务基线PG测试新建库,系统服务云 - 基础服务 - 特殊管理员 - 权限控制策略,找到三权分立权限策略,点击查看详情,看看原来相应表单分配给了哪些管理员。本例中,“业务角色-修改” 只分配给了安全管理员,所以“业务角色-分配”只追加给安全管理员。


       


  • 升级程序会按照“新表单标识-权限项”以及 “三权分立时要授予权限的虚拟管理员”,决定是否将“新表单标识-权限项”追加到相应的虚拟管理员权限

如何通过升级程序预置追加的表单-权限项

变更记录产品版本更新内容更新日期V5.0.025初始版本2023/07/26使用场景业务实现过程中,给某个表单新增了权限项后,直接升级,那么原来拥有...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信