【BOS基础系统_权限】EAS按钮事件验权代码调试案例分享原创
金蝶云社区-汪伟康
汪伟康
2人赞赏了该文章 793次浏览 未经作者许可,禁止转载编辑于2021年04月17日 18:12:16

背景:越秀提单 R20210309-2197,某用户在当前登录组织A下对 某通知单 点 生成凭证,提示该用户 没有组织B的 通知单生成凭证 的业务权限

image.png


按钮事件验权流程:


com.kingdee.bos.ctrl.swing.KDWorkButton.fireActionPerformed(ActionEvent)


com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformed(ActionEvent)


com.kingdee.bos.appframework.client.servicebinding.ActionProxy.actionPerformedInvoke(ActionParams)


com.kingdee.bos.appframework.client.servicebinding.ActionProxy.beforeAction()


com.kingdee.eas.framework.client.service.PermissionService.beforeActionPerformed(Map)


com.kingdee.eas.framework.client.service.PermissionService.handlePermissionForItemAction(IItemAction)


com.kingdee.eas.base.permission.client.util.PermissionHelper.checkFunctionPermission(IObjectPK, IObjectPK, IMetaDataPK, ItemAction, String, boolean, Map)

...



框架初始化上下文uiContext对象中orgPk的流程:


业务继承com.kingdee.eas.framework.client.ListUI 可能重写initMainBizOrg方法,导致最终uiContext中的org非当前登录组织

如:

com.kingdee.eas.fi.gl.cslacct.client.RequisitionListUI.initMainBizOrg(List)


com.kingdee.eas.framework.client.ListUI.initMainBizOrg(List)


com.kingdee.eas.framework.client.CoreUI.initUIMainOrgContext(String)

(getUIContext().put(this.getMainBizOrgType(),FrameWorkUtils.getCurrentOrgUnit(mainOrgContext,getMainBizOrgType()));)


com.kingdee.bos.ui.face.BOSUIContext.put(Object, Object)


图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!