二开案例.表单插件.自定义功能验权
【应用场景】
对自定义菜单,或自定义按钮,或自定义的某个功能,进行权限控制。
【案例演示】
采购订单,菜单集合新增一个菜单【发送消息】,针对此菜单的点击进行权限控制,鼠标点击该菜单后进行验证,有权继续执行,无权显示验权失败的提示信息,并终止操作。
【实现步骤】
<1>用管理员账号登录星空系统,新增权限项【发送消息】,获取权限项内码(后面插件中要用到)。
获取权限项内码:
<2>权限对象绑定权限项。
采购订单的权限对象是【采购订单】,可在BOSIDE中查看。
<3>新增角色。
<4>角色设定权限。
<5>用户绑定角色。
<6>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】自定义功能验权
/// </summary>
[Description("【表单插件】自定义功能验权"), HotUpdate]
public class FuncPermissionAuthFormPlugIn : AbstractDynamicFormPlugIn
{
/// <summary>
/// 发送消息的权限项内码
/// </summary>
const string permissionItemId = "6138179c9d7520";
/// <summary>
/// 发送消息的权限项名称,非必填参数,可为空
/// </summary>
const string permissionItemName = "发送消息";
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey == "SendMsg")
{
var pkid = string.Empty; // 验单据权限时填单据内码,没有填空
var permissionAuthResult = this.View.Model.FuncPermissionAuth(new[] { pkid }
, permissionItemId, permissionItemName, false).FirstOrDefault();
if (permissionAuthResult != null && !permissionAuthResult.Passed)
{
this.View.ShowMessage(string.Format("验权失败:您没有“{0}”的“{1}”权限!", this.View.BillBusinessInfo.GetForm().Name, permissionItemName));
e.Cancel = true;
return;
}
this.View.ShowMessage("验权通过!");
}
}
}
}
/*
--权限项
DELETE T_SEC_PERMISSIONITEM WHERE FITEMID = '6138179c9d7520';
INSERT INTO T_SEC_PERMISSIONITEM(FITEMID, FFORBIDSTATUS, FNUMBER, FDESCRIPTION, FSEQ, FGROUP, FISSYSPRESET) VALUES('6138179c9d7520','A', N'Tst_SendMsg', N' ',100,'4','0');
--权限项多语言
DELETE T_SEC_PERMISSIONITEM_L WHERE FITEMID = '6138179c9d7520' AND FLOCALEID = 2052;
INSERT INTO T_SEC_PERMISSIONITEM_L(FPKID, FITEMID, FLOCALEID, FNAME, FDESCRIPTION) VALUES('6138179c9d7521','6138179c9d7520',2052, N'发送消息(测试)', N' ');
*/
<7>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<9>BOSIDE扩展采购订单,菜单集合新增菜单项,注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开采购订单新增界面,点击菜单【发送消息】,验权通过。
<2>用管理员账号登录星空系统,将角色【测试员】的【采购订单】的【发送消息】的权限设置为【无权】,再次点击菜单【发送消息】,验权不通过。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】
二开案例.表单插件.自定义功能验权
本文2024-09-23 04:18:13发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164440.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf