HOR-2677
[Zendesk - 4230] Any user can claim a case with a link generated by the PMFCaseLink function
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user