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); } } }
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); }
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; }
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; }