二开案例.权限控制.自定义按钮如何进行权限控制

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.权限控制.自定义按钮如何进行权限控制

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、背景介绍: 通过下图可以看到,系统的权限控制是跟操作绑定在一起的。 这一块的具体对应关系是:业务对象关联权限对象(设置位置...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息