Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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);
        }