diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 0d14f181a..3078ece08 100644 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -7341,4 +7341,28 @@ class Cases }); return $rows; } + + /** + * @param $proUid + * @param $dynaformUid + * @return bool + */ + public function getAllObjectsTrackerDynaform($proUid, $dynaformUid) + { + $c = new Criteria(); + $c->clearSelectColumns(); + $c->addSelectColumn(CaseTrackerObjectPeer::CTO_TYPE_OBJ); + $c->add(CaseTrackerObjectPeer::PRO_UID, $proUid, Criteria::EQUAL); + $c->add(CaseTrackerObjectPeer::CTO_UID_OBJ, $dynaformUid, Criteria::EQUAL); + $c->setLimit(1); + $rs = CaseTrackerObjectPeer::doSelectRS($c); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $row = $rs->getRow(); + + if (is_array($row)) { + return true; + } + return false; + } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 9255fcea3..4876b4b02 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -3052,7 +3052,9 @@ class Cases } } } - return ($flagSupervisors && $userAccess) || $flagPermissionsVIEW || $flagPermissionsBLOCK; + //check case Tracker + $flagCaseTracker = $case->getAllObjectsTrackerDynaform($arrayApplicationData['PRO_UID'], $dynaformUid); + return ($flagSupervisors && $userAccess) || $flagPermissionsVIEW || $flagPermissionsBLOCK || $flagCaseTracker; } else { $arrayResult = $this->getStatusInfo($applicationUid, 0, $userUid); $flagParticipated = false;