【BOS基础系统_权限】业务单据验权流程代码走读
1.单据增删改权限验权
1.1---业务单据前端增删改等按钮事件验权(功能权限,无权则抛异常:没有XXX 的业务权限)------------
可参考:https://wenku.my7c.com/article/171321788016661248
1.2----业务单据增删改操作的数据权限验权流程(没有权限则抛异常:没有 XXX 的 数据权限)
com.kingdee.eas.scm.sm.pur.client.PurOrderEditUI.actionSave_actionPerformed(ActionEvent)
com.kingdee.eas.scm.common.client.SCMBillEditUI.actionSave_actionPerformed(ActionEvent)
com.kingdee.eas.framework.client.CoreBillEditUI.actionSave_actionPerformed(ActionEvent)
com.kingdee.eas.framework.client.AbstractCoreBillEditUI.actionSave_actionPerformed(ActionEvent)
com.kingdee.eas.framework.client.EditUI.actionSave_actionPerformed(ActionEvent)
com.kingdee.eas.framework.client.EditUI.runSave()
getBizInterface().save(editData);
com.kingdee.eas.scm.sm.pur.client.PurOrderEditUI.getBizInterface()
(com.kingdee.eas.scm.sm.pur.IPurOrder)BOSObjectFactory.createRemoteBOSObjectWithObjectContext(new BOSObjectType("3171BFAD") ,com.kingdee.eas.scm.sm.pur.IPurOrder.class, objectCtx);
com.kingdee.eas.framework.CoreBase.save(CoreBaseInfo)
return getController().save(getContext(), model);
protected BizController getBizController() throws BOSException {
return EJBFactory.getBusinessController(getContext(), getType());
}
com.kingdee.eas.framework.app.CoreBaseController.save(Context, CoreBaseInfo)
com.kingdee.eas.framework.app.AbstractCoreBaseControllerBean.save(Context, CoreBaseInfo)
com.kingdee.bos.framework.ejb.AbstractBizControllerBean.invokeServiceBefore(ServiceContext)
--------------------进入权限服务---------------------------
com.kingdee.eas.base.permission.app.adapter.PermissionServiceAdapter.execute(IServiceContext)
com.kingdee.eas.base.permission.app.adapter.PermissionServiceAdapter.handleServiceBefore(IServiceContext)
IPermission iPermission = PermissionFactory.getLocalInstance(serviceContext.getContext());
iPermission.checkDataPermission(userPK, orgPK, permItemInfo.getName(), objectValue);
com.kingdee.eas.base.permission.app.PermissionControllerBean._checkDataPermission(Context, IObjectPK, IObjectPK, IMetaDataPK, IMetaDataPK, IObjectPK)
com.kingdee.eas.base.permission.app.service.DataPermissionService.checkPermission(IObjectPK, IObjectPK, String, Object)
com.kingdee.eas.base.permission.app.service.DataPermissionService.hasPermission(IObjectPK, IObjectPK, String, Object)
.......
2、单据查看权限验权
2.1---业务单据ListUI加载时的查看权限验权(功能权限,无权则抛异常:没有XXX 的业务权限)
com.kingdee.eas.scm.sm.pur.client.PurOrderListUI.onLoad()
com.kingdee.eas.scm.common.client.SCMBillListUI.onLoad()
com.kingdee.eas.framework.client.CoreBillListUI.onLoad()
com.kingdee.eas.framework.client.ListUI.onLoad()
com.kingdee.eas.framework.client.CoreUI.onLoad()
com.kingdee.eas.framework.client.CoreUI.handlePermissionForItemAction(ItemAction)
2.2----业务单据查询(走实体的查询方法,如getValue(),getCollection()等)的数据权限验权流程(不满足数据规则就抛异常:没有XXX 的数据权限)
代码流程与1.2一致,只是走的方法不一样。
2.3----业务单据查询(走实体query查询)的数据权限验权流程(只查到有权限看到的数据,不抛异常)
(com.kingdee.eas.framework.client.ListUI.initMainQuery()
com.kingdee.eas.framework.client.ListUI.actionQuery_actionPerformed(ActionEvent))
com.kingdee.eas.base.uiframe.client.MainMenuTree.showUI(Component, MainMenuItemInfo, OpenMethod)
com.kingdee.eas.base.uiframe.client.UINewTab.show()
mainUI.getUiManager().changeTab(uiObject);
com.kingdee.eas.framework.client.CoreUI.doLayout()
com.kingdee.eas.framework.client.CoreBillListUI.onShow()
com.kingdee.eas.framework.client.ListUI.onShow()
com.kingdee.eas.framework.client.CoreUI.onShow()
getFastFilter().executeDefaultSolution(defaultSolution)
com.kingdee.eas.framework.query.MySolutionList.doExecuteSolutionItem(SolutionItem)
quickSearchQuery.doQuery(item.getSolutionInfo(), filter, mainOrgs, false);
com.kingdee.eas.framework.client.ListUI.doQuery(QuerySolutionInfo, FilterInfo, List, boolean)
com.kingdee.eas.framework.client.ListUI.execQuery()
com.kingdee.bos.ctrl.kdf.table.KDTable.removeRows(boolean)
--------------------进入权限服务---------------------------
com.kingdee.eas.base.permission.app.adapter.PermissionServiceAdapter.execute(IServiceContext)
com.kingdee.eas.base.permission.app.adapter.PermissionServiceAdapter.handleServiceBefore(IServiceContext)
com.kingdee.eas.base.permission.app.adapter.MutiOrgPermissionServiceAdapter.handleQueryDataPermission(IServiceContext, PermItemInfo)
com.kingdee.eas.base.permission.app.adapter.MutiOrgFilter.initMultiOrgFilterItem(Context, IObjectPK, Collection, String, String[], PermItemInfo)
ruleStr = mpService.getPermissionRule(userPK,orgCollection,permItemInfo.getName(),orgFieldName);
com.kingdee.eas.base.permission.app.service.multiorg.MultiOrgDataPermissionService.getPermissionRule(IObjectPK, Collection, String, String)
......
(刷新走query验数据权限
com.kingdee.eas.framework.client.ListUI.actionRefresh_actionPerformed(ActionEvent)
com.kingdee.eas.framework.client.ListUI.refresh(ActionEvent)
com.kingdee.eas.framework.client.ListUI.doQuery(QuerySolutionInfo, FilterInfo, List, boolean)
com.kingdee.eas.base.permission.app.adapter.PermissionServiceAdapter.execute(IServiceContext)
)
【BOS基础系统_权限】业务单据验权流程代码走读
本文2024-09-16 22:18:00发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-47253.html