二开案例.权限控制.自定义按钮如何进行权限控制
1、背景介绍:
通过下图可以看到,系统的权限控制是跟操作绑定在一起的。
这一块的具体对应关系是:业务对象关联权限对象(设置位置在编辑菜单的权限控制设置下,如下图),操作关联权限项,用户有多个角色,角色可配置各个业务对象的权限项是否有权,层层推进,由此实现的判断操作是否有权。
2、现状分析:
细心的同学可能已经发现,权限控制是跟操作绑定在一起的,然后才是按钮绑定的操作,最后以此实现点击按钮时判断是否有权。
但是如果我们是自定义的按钮,没有绑定系统标准操作,那么该如何实现类似操作的权限控制呢,此处可通过二开插件实现,可参考如下案例。
3、案例演示:
本案例将演示为自定义按钮绑定权限项,点击时判断权限项是否有权,有权提示有权,无权提示无权,最终效果如下:
3.1、新增自定义的权限项绑定到权限对象上,再设置权限项无权:
3.2、点击按钮,提示无权:
3.3、设置权限项有权:
3.4、点击按钮,提示有权:
4、实现步骤:
using System.ComponentModel; using System.Linq; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.Core.Permission; using Kingdee.BOS.Util; namespace Running.Sample.PlugIn.BusinessPlugIn.List { [Description("测试按钮绑定空操作时的权限校验"), HotUpdate] public class P20201016BtnPermissionList : AbstractListPlugIn { public override void BarItemClick(BarItemClickEventArgs e) { //指定按钮才走权限校验。 if (e.BarItemKey.EqualsIgnoreCase("MOB_tbBtnPermssion")) { //权限项内码,通过 T_SEC_PermissionItem 权限项表格进行查询。 string permissionItem = "5f88fa880806fd"; PermissionAuthResult permissionAuthResult = this.View.Model.FuncPermissionAuth( new string[] { "单据内码" }, permissionItem, null, false).FirstOrDefault(); if (permissionAuthResult != null && !permissionAuthResult.Passed) { this.View.ShowMessage("按钮没权"); e.Cancel = true; return; } this.View.ShowMessage("按钮有权,执行后续自定义逻辑。"); } } } }
二开案例.权限控制.自定义按钮如何进行权限控制
1、背景介绍: 通过下图可以看到,系统的权限控制是跟操作绑定在一起的。 这一块的具体对应关系是:业务对象关联权限对象(设置位置...
点击下载文档
本文2024-09-23 04:01:52发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162661.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章