金蝶云星空业务对象自定义按钮进行权限控制

发布时间 2023-10-17 12:23:32作者: lanrenka


 金蝶云星空业务对象自定义按钮进行权限控制

一、背景说明
金蝶标准:权限绑定操作,操作绑定按钮。
实际需求:按钮不绑定操作,直接验权


二、 创建按钮

2.1菜单集合

 

 2.2列表菜单

 


三、创建权限项

 

 


四、 添加权限项到权限对象

 

五 创建公共权限服务

using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.Permission;
using Kingdee.BOS.ServiceHelper;


namespace MM.K3.Business.Common
{
    /// <summary>
    /// 功能描述    :权限公共服务  
    /// 创 建 者    :Administrator
    /// 创建日期    :2023/10/11 10:56:46 
    /// 最后修改者  :Krystal
    /// 最后修改日期:2023/10/11 10:56:46 
    /// </summary>
    public class PermissionFunc
    {
        #region <常量>
        #endregion <常量>

        #region <变量>
        #endregion <变量>

        #region <属性>
        #endregion <属性>

        #region <构造方法和析构方法>
        #endregion <构造方法和析构方法>

        #region <方法>

        /// <summary>
        /// 校验是否有权限
        /// </summary>
        /// <param name="ctx">上下文</param>
        /// <param name="view">表单视图</param>
        /// <param name="sPermissionItemId">权限项的id:表 T_SEC_PERMISSIONITEM的FITEMID</param>
        /// <param name="isShowMsg">是否提示无权,默认是</param>
        /// <returns></returns>
        public static bool AuthorizePermissionForEdit(Context ctx
            , IDynamicFormView view, string sPermissionItemId, bool isShowMsg = true)
        {
            string id = view.BillBusinessInfo.GetForm().Id;//业务对象标识
            string strPerItemId = sPermissionItemId;
            BusinessObject bizObject = new BusinessObject
            {
                Id=id,
                SubSystemId=view.OpenParameter.SubSystemId,
                PermissionControl=1
            };
            if (PermissionServiceHelper.FuncPermissionAuth(ctx,bizObject,strPerItemId).Passed)
            {
                return true;
            }
            if (isShowMsg)
            {
                view.ShowMessage("您没有权限执行此操作。");
            }
            return false;
        }
        #endregion <方法>

        #region <事件>
        #endregion <事件>
    }
}
View Code

 


六、 表单插件编码实现

 

七、列表插件编码实现

 


八 测试
8.1不授权

 


8.2 授权

 

 完美