自定义动态表单功能权限控制
问题:二开自定义的动态表单,如何控制单据头的按钮操作权限,即:权限可以根据不同的用户来设定
一、权限设置及处理的大致流程:
1、设置权限对象,添加权限项(这里的权限项可以简单理解为表单上的各个按钮)
2、业务对象功能授权,根据角色配置相关业务对象的功能权限(有权、无权、禁止)
3、用户授权:用户+组织,绑定对应角色
二、这里以库存模块中"关账/反关账"功能来说明动态表单相关操作的权限控制
1、首先在BOS中打开"关账/反关账"表单,得到其绑定的权限对象为"期末处理"
2、管理员账号进入系统后台,找到权限对象"期末处理",查看其下绑定的相关权限项
3、根据1、2的设置,查询权限对象相关表
-- 权限对象表
select * from T_SEC_PERMISSIONOBJECT where FNUMBER = 'STK_Account'
-- 权限对象中权限项集合表(FPERMISSIONITEMID: 权限项内码、 FITEMID: 分录内码)
select * from T_SEC_PERMISSIONOBJECTENTRY where FITEMID = 'e0f06f8cdbd647be95ae98bc36b039db'
4、业务对象功能授权,根据角色配置相关业务对象的功能权限(有权、无权、禁止)
5、判断当前登录用户是否有关账/反关账的权限,代码示例如下:
//构造验权参数,以组织ID作为PKid来标记验权返回结果 List<BusinessObject> bizObjs = new List<BusinessObject>(); foreach (long orgId in selInvIdOrgs.Values.Distinct()) { BusinessObject bisObj = new BusinessObject(orgId); bisObj.Id = formID; bisObj.pkId = orgId.ToString(); bizObjs.Add(bisObj); } //调用权限验证接口 List<PermissionAuthResult> authResults = PermissionServiceHelper.FuncPermissionAuth(this.View.Context, bizObjs, perItemId); if (authResults == null || authResults.Count < 1) { return false; }
综合以上,在二开一个新的业务对象时,首先需要创建权限对象并配置权限项,如果是自定义的权限项,需要手动插入权限项表(T_SEC_PERMISSIONITEM、T_SEC_PERMISSIONITEM_L),再根据步骤二中1~5的设置方法,进行处理。
参考:
以上分析及处理方案是一些个人的理解,如有不对之处,还请指正。
自定义动态表单功能权限控制
问题:二开自定义的动态表单,如何控制单据头的按钮操作权限,即:权限可以根据不同的用户来设定一、权限设置及处理的大致流程:1、设置权...
点击下载文档
本文2024-09-16 19:07:06发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-26517.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章