功能升级迭代追加授权方案
各个领域功能升级迭代,废弃了一些功能又开发了新的功能(新权限)来替代,此时就需要进行新功能的补充授权。 目前平台权限组,有一些升级程序,可供各领域调用。
原则上,补丁升级进行无感知追加授权,这种情况建议尽可能的减少。
根据已有授权信息中的“表单-权限项”,追加新的“表单-权限项”,应用不变
适用版本:苍穹平台V6.0.1及以上。
升级内容包含:
三权分立策略管理员类型的功能权限、管理员组分组授权中第一个页签的功能权限、直接授权功能权限、直接禁权功能权限、通用角色授权功能权限、业务角色补充权限、业务角色禁用权限。
接口: kd.bos.servicehelper.permission.PermissionServiceHelper #appendPermItemAuthUpgrade(List<Object[]> oldEntPerItem2NewMapList, StringBuilder pProcessInfo) 入参示例: List<Object[]> oldEntPerItem2NewMapList = Arrays.asList(new Object[]{"perm_busirole", PermItemConst.ITEM_MODIFY, "perm_busirole", PermItemConst.ITEM_ASSIGN, new Long[]{PermApiConst.THREE_STRATEGY_3_SECURITY_ENTRYID}}, new Object[]{}); 参数含义: Object[]{旧表单标识 , 旧表单的权限项, 需要新增的表单标识, 需要新增的权限项, new Long[]{三权分立时要授予权限的虚拟管理员}}。 目的1:如果原来有“perm_busirole”的“修改”权,那么追加“perm_busirole”的“分配”权。 目的2:将 “perm_busirole”的“分配”权, 赋予 "三权分立"下的安全管理员。
根据某应用追加表单的原生应用权限
适用版本:苍穹平台V6.0.1及以上。
升级内容包含:
三权分立策略管理员类型的功能权限、管理员组分组授权中第一个页签的功能权限、直接授权功能权限、直接禁权功能权限、通用角色授权功能权限、业务角色补充权限、业务角色禁用权限。
接口: kd.bos.servicehelper.permission.PermissionServiceHelper #appendPermItemAuthByAppUpgrade(List<Object[]> needAppendAppEntPermItemMapList, StringBuilder pProcessInfo) 入参示例: List<Object[]> needAppendAppEntPermItemMapList = Arrays.asList( new Object[]{ new String[]{"18XSXYEL8//U"}, "sys_login_config", PermItemConst.ITEM_VIEW, new Long[]{PermApiConst.THREE_STRATEGY_1_ADMIN_ENTRYID} }, new Object[]{} ); 参数含义: Object[]{new String[]{需要追加授权的应用id}, 需要追加授权的表单标识, 需要追加授权的权限项id, new Long[]{三权分立时要授予权限的虚拟管理员ID}}。 目的1:用户原来拥有 应用 "18XSXYEL8//U"(监控管理) 下任何授权,那么追加该应用下表单“sys_login_config” 的“查询”权。 目的2:将 “sys_login_config”的“查询”权, 赋予 "三权分立"下的系统管理员。
根据应用-表单映射关系追加授权
适用版本:苍穹平台V6.0.1及以上。
升级内容包含:
三权分立策略管理员类型的功能权限、管理员组分组授权中第一个页签的功能权限、直接授权功能权限、直接禁权功能权限、通用角色授权功能权限、业务角色补充权限、业务角色禁用权限;
用户直接授权、通用角色的字段权限明细;
用户直接授权-数据规则;
用户直接授权-数据规则-基础资料范围;
通用角色-数据规则、基础资料范围;
特殊数据权限。
接口: kd.bos.servicehelper.permission.PermissionServiceHelper #appendPermByAppEntNumMapUpgrade(List<Object[]> appIdEntNumMapObjList, StringBuilder pProcessInfo) 入参示例: List<Object[]> appIdEntNumMapObjList = Arrays.asList( new Object[]{"83bfebc8000037ac", "perm_role", "0XWTKVOQW+ML"}, new Object[]{"83bfebc8000037ac", "perm_role", "160KDGX6L=GR"} ); 参数含义: Object[]{已有授权的应用id, 表单number, 需追加授权的应用id}。 目的1:如果原来有 “基础服务(83bfebc8000037ac)” 的 “通用角色(perm_role)” 权限, 那么追加 “安全管理(0XWTKVOQW+ML)” 的 “通用角色(perm_role)” 权限。 目的2:如果原来有 “基础服务(83bfebc8000037ac)” 的 “通用角色(perm_role)” 权限, 那么追加 “基础资料(160KDGX6L=GR)” 的 “通用角色(perm_role)” 权限。
根据管理员身份追加授权
适用版本:苍穹平台V6.0.1及以上。
升级内容包含:
三权分立策略管理员类型的功能权限、管理员组分组授权中第一个页签的功能权限。
接口: kd.bos.permission.cache.util.AppendPermByAdminUpgradeUtil#upgrade(List<Object[]> needAppendPermList, StringBuilder pProcessInfo) 入参示例: List<Object[]> needAppendPermList = Arrays.asList( new Object[]{"0XWTKVOQW+ML", "perm_log", "47150e89000000ac", new Long[]{PermApiConst.THREE_STRATEGY_2_AUDITOR_ENTRYID}}, new Object[]{} ); 参数含义: Object[]{需追加授权的应用id, 需追加授权的实体标识, 需追加授权的权限项id, new Long[]{三权分立时要授予权限的虚拟管理员}}。 目的1: 只要用户是管理员,就给他追加 “安全管理(0XWTKVOQW+ML)” 下 “权限日志(perm_log)” 的 “查询(47150e89000000ac)” 权。 目的2:将 “perm_log”的“查询”、“归档设置”权, 赋予 "三权分立"下的审计管理员。
确定前后应用-表单-权限项的追加授权
适用版本:苍穹平台V7.0.1及以上。
升级内容包含:
三权分立策略管理员类型的功能权限、管理员组分组授权中第一个页签的功能权限、直接授权功能权限、直接禁权功能权限、通用角色授权功能权限、业务角色补充权限、业务角色禁用权限。
接口: kd.bos.permission.cache.util.AppendPermBySureAppEntPermItemUtil#upgrade(List<Object[]> old2NewPermMapList, StringBuilder pProcessInfo) 入参示例: List<Object[]> old2NewPermMapList = Arrays.asList( new Object[]{"0XWTKVOQW+ML", "bos_usergroup_user", PermItemConst.ITEM_VIEW, "0XWTKVOQW+ML", "bos_usergroup_user", "3WMBZC439VVL", new Long[]{PermApiConst.THREE_STRATEGY_3_SECURITY_ENTRYID}}, new Object[]{} ); 参数含义: Object[]{原权限的应用id , 原权限的表单标识 , 原权限的权限项id, 需追加授权的应用id, 需追加授权的表单标识, 需追加授权的权限项id, new Long[]{三权分立时要授予权限的虚拟管理员}}。 目的1:前6个参数,实现:如果原来有 应用“安全管理” - 表单“用户信息” - 权限项“查询” 的权限,那么追加 应用“安全管理” - 表单“用户信息” - 权限项“直接授权” 的权限。 目的2:后4个参数,实现:将 应用“安全管理” - 表单“用户信息” - 权限项“直接授权” 的权限, 赋予 "三权分立"下的 安全管理员。
功能升级迭代追加授权方案
本文2024-09-23 00:46:00发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141592.html