示例#1
0
 public function checkFlowAccess($flowId, $processId, $jump = "")
 {
     $per = WfNewUtil::checkProcessPermission($flowId, $processId, $this->getUid());
     if (!$per) {
         $errMsg = Ibos::lang("Permission denied");
         if (!empty($jump)) {
             $this->error($errMsg, $jump);
         } else {
             exit($errMsg);
         }
     }
 }
示例#2
0
 public function actionAdvanced()
 {
     $flowList = $sort = array();
     $enabledFlowIds = WfNewUtil::getEnabledFlowIdByUid($this->uid);
     foreach (FlowType::model()->fetchAll() as $flow) {
         $catId = $flow["catid"];
         $flowId = $flow["flowid"];
         if (!isset($flowList[$catId])) {
             $sort[$catId] = array();
             $cat = FlowCategory::model()->fetchByPk($catId);
             if ($cat) {
                 $sort[$catId] = $cat;
             }
         }
         if ($flow["usestatus"] == 3) {
             continue;
         }
         $enabled = in_array($flowId, $enabledFlowIds);
         if (!$enabled && $flow["usestatus"] == 2) {
             continue;
         }
         $per = FlowPermission::model()->fetchPermission($this->uid, $flowId);
         if ($flow["type"] == 1 && Ibos::app()->user->isadministrator != "1" && !$per) {
             if (!WfNewUtil::checkProcessPermission($flowId, 0, $this->uid)) {
                 continue;
             }
         }
         $handle = $done = 0;
         foreach (FlowRun::model()->fetchAllEndByFlowID($flowId) as $run) {
             if ($run["endtime"] == 0) {
                 $handle++;
             } else {
                 $done++;
             }
         }
         $flow["handle"] = $handle;
         $flow["done"] = $done;
         $flow["enabled"] = $enabled;
         $flowList[$catId][$flowId] = $flow;
     }
     ksort($flowList, SORT_NUMERIC);
     $this->setPageTitle(Ibos::lang("Select process"));
     $this->setPageState("breadCrumbs", array(array("name" => Ibos::lang("Workflow")), array("name" => Ibos::lang("Work query"), "url" => $this->createUrl("query/index")), array("name" => Ibos::lang("Advanced query"), "url" => $this->createUrl("query/advanced")), array("name" => Ibos::lang("Select process"))));
     $data = array("flows" => $flowList, "sort" => $sort);
     $this->render("advanced", $data);
 }
示例#3
0
 public static function getFlowList($uid)
 {
     $temp = array();
     $user = User::model()->fetchByUid($uid);
     foreach (FlowType::model()->fetchAllFlow() as $flow) {
         if ($flow["usestatus"] == 3) {
             continue;
         }
         $per = WfNewUtil::checkProcessPermission($flow["flowid"], 0, $uid);
         $isManager = FlowPermission::model()->fetchPermission($uid, $flow["flowid"], array(0, 1));
         if ($per || $isManager || $user["isadministrator"]) {
             $data = array("id" => $flow["flowid"], "text" => $flow["name"]);
             if (!isset($temp[$flow["catid"]])) {
                 $temp[$flow["catid"]]["text"] = $flow["catname"];
                 $temp[$flow["catid"]]["children"] = array();
             }
             $temp[$flow["catid"]]["children"][] = $data;
         }
     }
     $result = array_merge(array(), $temp);
     return $result;
 }
示例#4
0
 public static function getFlowList($uid, $filterUseStatus = true)
 {
     $temp = array();
     foreach (FlowType::model()->fetchAllFlow() as $flow) {
         if (!WfNewUtil::checkProcessPermission($flow["flowid"], 0, $uid)) {
             continue;
         }
         if ($filterUseStatus && $flow["usestatus"] == 3) {
             continue;
         }
         $data = array("id" => $flow["flowid"], "text" => $flow["name"]);
         if (!isset($temp[$flow["catid"]])) {
             $temp[$flow["catid"]]["text"] = $flow["catname"];
             $temp[$flow["catid"]]["children"] = array();
         }
         $temp[$flow["catid"]]["children"][] = $data;
     }
     $result = array_merge(array(), $temp);
     return $result;
 }