[Zendesk - 4230] Any user can claim a case with a link generated by the PMFCaseLink function
This commit is contained in:
dheeyi william
2017-02-14 16:06:28 -04:00
parent a1df28f12b
commit 8872b471d4
2 changed files with 21 additions and 5 deletions

View File

@@ -69,7 +69,6 @@ if (isset($_SESSION['__OPEN_APPLICATION_UID__'])) {
$confDefaultOption = 'CASES_SEARCH';
$action = 'search';
$arrayResult = $case->getStatusInfo($_SESSION['__OPEN_APPLICATION_UID__'], 0, $_SESSION['USER_LOGGED']);
$arrayDelIndex = [];
@@ -89,9 +88,21 @@ if (isset($_SESSION['__OPEN_APPLICATION_UID__'])) {
$arrayDelIndex = $arrayResult['DEL_INDEX'];
} else {
$arrayResult = $case->getStatusInfo($_SESSION['__OPEN_APPLICATION_UID__']);
$arrayDelIndex = $arrayResult['DEL_INDEX'];
$arrayResultData = $case->getStatusInfo($_SESSION['__OPEN_APPLICATION_UID__']);
$supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor();
$isSupervisor = $supervisor->isUserProcessSupervisor($arrayResultData['PRO_UID'], $_SESSION['USER_LOGGED']);
if ($isSupervisor) {
$arrayResult = $arrayResultData;
$arrayDelIndex = $arrayResultData['DEL_INDEX'];
} else {
$_SESSION['PROCESS'] = $arrayResultData['PRO_UID'];
$_GET['APP_UID'] = $_SESSION['__OPEN_APPLICATION_UID__'];
$_SESSION['ACTION'] = 'jump';
$_SESSION['APPLICATION'] = $_SESSION['__OPEN_APPLICATION_UID__'];
$_SESSION['INDEX'] = $arrayResultData['DEL_INDEX'][0];
require_once(PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');
exit();
}
}
if (count($arrayDelIndex) == 1) {

View File

@@ -2386,7 +2386,7 @@ class Cases
if ($rsCriteria->next()) {
$record = $rsCriteria->getRow();
$arrayData = ['APP_STATUS' => $record['APP_STATUS'], 'DEL_INDEX' => []];
$arrayData = ['APP_STATUS' => $record['APP_STATUS'], 'DEL_INDEX' => [], 'PRO_UID' => $record['PRO_UID']];
$arrayData['DEL_INDEX'][] = $record['DEL_INDEX'];
while ($rsCriteria->next()) {
@@ -2427,6 +2427,7 @@ class Cases
$criteria->setDistinct();
$criteria->addSelectColumn($delimiter . 'PAUSED' . $delimiter . ' AS APP_STATUS');
$criteria->addSelectColumn(\AppDelayPeer::APP_DEL_INDEX . " AS DEL_INDEX");
$criteria->addSelectColumn(\AppDelayPeer::PRO_UID);
$criteria->add(\AppDelayPeer::APP_UID, $applicationUid, \Criteria::EQUAL);
$criteria->add(\AppDelayPeer::APP_TYPE, "PAUSE", \Criteria::EQUAL);
@@ -2468,6 +2469,7 @@ class Cases
$criteria->clearSelectColumns();
$criteria->addSelectColumn($delimiter . 'UNASSIGNED' . $delimiter . ' AS APP_STATUS');
$criteria->addSelectColumn(\AppCacheViewPeer::DEL_INDEX);
$criteria->addSelectColumn(\AppCacheViewPeer::PRO_UID);
$criteria->add(\AppCacheViewPeer::APP_UID, $applicationUid, \Criteria::EQUAL);
@@ -2489,6 +2491,7 @@ class Cases
$criteria->setDistinct();
$criteria->addSelectColumn(\ApplicationPeer::APP_STATUS);
$criteria->addSelectColumn(\ApplicationPeer::PRO_UID);
$criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX);
$arrayCondition = array();
@@ -2529,6 +2532,7 @@ class Cases
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ApplicationPeer::APP_STATUS);
$criteria->addSelectColumn(\ApplicationPeer::PRO_UID);
$criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX);
$arrayCondition = array();
@@ -2568,6 +2572,7 @@ class Cases
$criteria2->addSelectColumn($delimiter . 'PARTICIPATED' . $delimiter . ' AS APP_STATUS');
$criteria2->addSelectColumn(\AppDelegationPeer::DEL_INDEX);
$criteria2->addSelectColumn(\ApplicationPeer::APP_UID);
$criteria2->addSelectColumn(\ApplicationPeer::PRO_UID);
$rsCriteria2 = \ApplicationPeer::doSelectRS($criteria2);
$rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);