【分享】二开插件代码怎么控制功能权限,数据范围权限

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

【分享】二开插件代码怎么控制功能权限,数据范围权限

业务背景:有个条码项目,客户端是PDA,操作系统是WindowsCE,程序由第三方开发,调用K3Cloud的WEBApi接口,WEBApi接口需要识别用户有哪些组织权限?有哪些基础资料权限(比如可以方位哪些仓库)?有哪些业务单据操作权限?请教老师如何在插件里面获得这些权限,谢谢
引用工程
Kingdee.BOS.dll
Kingdee.BOS.Core.dll
Kingdee.BOS.DataEntity.dll
Kingdee.BOS.ServiceHelper.dll

问题1:判断当前用户是否拥有采购订单的审核权限?[code]        //检测当前用户是否有采购订单的审核权限
           Kingdee.BOS.Core.Permission.BusinessObject permissionForm = new Kingdee.BOS.Core.Permission.BusinessObject()
           {
               Id = "PUR_PurchaseOrder",      //采购订单单据d
PermissionControl = businessInfo.GetForm().SupportPermissionControl     //是否权限控制
           };

//如果要检查其它的操作权限,需要更改strPerItemId参数
           var authResult = PermissionServiceHelper.FuncPermissionAuth(this.View.Context, permissionForm, Kingdee.BOS.Core.Permission.PermissionConst.Audit);
           if (authResult.Passed == false)
           {
               //没有采购订单的审核权限
               this.View.ShowErrMessage("你没有审核的权限,请联系系统管理员!");
               return;
           }
           else
           {
               //有采购订单的审核权限
           }[/code]

问题2:当前用户能看到哪些仓库?(只能查到当前用户有权限的仓库)

[code] string formId = "BD_STOCK";//仓库单据ID
           Kingdee.BOS.Core.Metadata.FormMetadata stockFormMetaData = MetaDataServiceHelper.GetFormMetaData(this.View.Context, formId);
           DataRuleFilterParamenter filterParameter = new DataRuleFilterParamenter(formId)
           {
               PermissionItemId = Kingdee.BOS.Core.Permission.PermissionConst.View,
               SubSystemId = stockFormMetaData.BusinessInfo.GetForm().SubsysId,
               BusinessInfo = stockFormMetaData.BusinessInfo
           };

DataRuleFilterObject filterObject = PermissionServiceHelper.LoadDataRuleFilter(this.View.Context, filterParameter);//获取当前用户可以访问哪些仓库(过滤条件)
           Kingdee.BOS.Core.SqlBuilder.QueryBuilderParemeter queryParameter = new Kingdee.BOS.Core.SqlBuilder.QueryBuilderParemeter
           {
               FormId = formId,
               BusinessInfo = stockFormMetaData.BusinessInfo,
               PermissionItemId = Kingdee.BOS.Core.Permission.PermissionConst.View,
               FilterClauseWihtKey = filterObject.FilterString,//过滤条件
           };

Kingdee.BOS.Orm.DataEntity.DynamicObject[] stockObjects = BusinessDataServiceHelper.Load(this.View.Context, stockFormMetaData.BusinessInfo.GetDynamicObjectType(), queryParameter);[/code]

问题3:怎么获取报表的基础资料权限
[code] //获取到期债务表报表中客户的基础资料范围权限
           string formId = "BD_Customer";//客户单据ID
           Kingdee.BOS.Core.Metadata.FormMetadata formMetaData = MetaDataServiceHelper.GetFormMetaData(this.View.Context, formId);
           DataRuleFilterParamenter filterParameter = new DataRuleFilterParamenter(formId)
           {
               PermissionItemId = Kingdee.BOS.Core.Permission.PermissionConst.View,//查看权限项
               SubSystemId = formMetaData.BusinessInfo.GetForm().SubsysId,
               BusinessInfo = formMetaData.BusinessInfo,
               IsLookUp=true,//是否基础资料权限
               ParentFormId = "AP_MaturedDebt"//到期债务表报表ID
           };

DataRuleFilterObject filterObject = PermissionServiceHelper.LoadDataRuleFilter(this.View.Context, filterParameter);//获取权限过滤条件
           string filter = filterObject.FilterString;[/code]

问题4:当前用户有哪些组织?

[code]  //获取当前登陆用户的用户组织关系
           List

在字段授权里把采购订单的单价字段查看权限设置为拒绝,则结果为false
[code]            //验证用户是否能查看采购订单的价格字段
           string formId = "PUR_PurchaseOrder";//采购订单的单据ID
           string fieldId = "FPrice";//价格字段Id
           var businessInfo = MetaDataServiceHelper.GetFormMetaData(this.View.Context, formId).BusinessInfo;
           BusinessObject permissonObject = new BusinessObject()
           {
               PermissionControl = businessInfo.GetForm().SupportPermissionControl,
               Id = formId
           };

List

【分享】二开插件代码怎么控制功能权限,数据范围权限

业务背景:有个条码项目,客户端是PDA,操作系统是WindowsCE,程序由第三方开发,调用K3Cloud的WEBApi接口,WEBApi接口需要识别用户有哪些...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息