/// <summary> /// 检查操作者是否有权限执行该动作 /// </summary> /// <param name="workflowName">工作流名称</param> /// <param name="dataid">业务表id</param> /// <param name="actionName">动作名称</param> /// <param name="operatorid">操作者ID</param> /// <returns></returns> public bool checkNodeAction(string workflowName, int dataid, string actionName, int operatorid) { workflowEx workflowEx = new workflowEx(); workflow wf = workflowEx.getworkflow(workflowName); //获取该工作流名称对应的工作流数据 workflowinstancesEx wfinstancesEx = new workflowinstancesEx(); workflowinstances wfinstances = wfinstancesEx.getworkflowinstances(wf.id, dataid); //获得工作流执行结果 //状态跃迁时 //判断操作者是否有权限 if (wfinstances != null) { return(checkNodeAction(actionName, operatorid, wf, wfinstances)); } else//新增动作只判断当前操作者是否有权限执行这个动作 { workflownodeactionEx wfnaEx = new workflownodeactionEx(); workflownodeaction wfna = wfnaEx.getworkflownodeaction(wf.id, actionName); workflownodeoperatorEx wfnoEx = new workflownodeoperatorEx(); workflownodeoperator wfno = wfnoEx.getworkflownodeoperator(wfna.id, operatorid); if (wfno == null) { return(false); } return(true); } }
/// <summary> /// 检查操作者是否有权限执行该动作 /// </summary> /// <param name="actionName">动作名称</param> /// <param name="operatorid">操作者ID</param> /// <param name="wf">工作流数据</param> /// <param name="wfinstances">工作流执行结果数据</param> /// <returns></returns> public bool checkNodeAction(string actionName, int operatorid, workflow wf, workflowinstances wfinstances) { workflownodeactionEx wfnaEx = new workflownodeactionEx(); workflownodeaction wfna = wfnaEx.getworkflownodeaction(wf.id, actionName); if (wfna.currentnodeid != wfinstances.currentnodeid) { return(false); } workflownodeoperatorEx wfnoEx = new workflownodeoperatorEx(); workflownodeoperator wfno = wfnoEx.getworkflownodeoperator(wfna.id, operatorid); if (wfno == null) { return(false); } return(true); }