From 9e78e01918361e866ddc0e9d2956ccbcdae741d3 Mon Sep 17 00:00:00 2001 From: mcuiza Date: Wed, 8 Jun 2016 10:46:58 -0400 Subject: [PATCH] HOR-1113: Process supervisor - Review - Jump to correcciones . --- workflow/engine/classes/model/ProcessUser.php | 18 ++++++++++++++++++ .../methods/cases/cases_OpenToRevise.php | 6 ++++++ workflow/engine/methods/cases/cases_Resume.php | 3 +++ .../methods/cases/cases_StepToRevise.php | 9 +++++++++ workflow/engine/methods/cases/open.php | 11 +++++++++++ workflow/engine/templates/cases/casesList.js | 7 ++++++- 6 files changed, 53 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/model/ProcessUser.php b/workflow/engine/classes/model/ProcessUser.php index dc1f3dfd2..1063c8459 100755 --- a/workflow/engine/classes/model/ProcessUser.php +++ b/workflow/engine/classes/model/ProcessUser.php @@ -92,5 +92,23 @@ class ProcessUser extends BaseProcessUser throw($oError); } } + + public function validateUserAccess($proUid, $usrUid, $type) + { + try { + $oCriteria = new Criteria(); + $oCriteria->add( ProcessUserPeer::PRO_UID, $proUid ); + $oCriteria->add( ProcessUserPeer::USR_UID, $usrUid ); + $oCriteria->add( ProcessUserPeer::PU_TYPE, $type ); + $data = ProcessUserPeer::doSelectOne( $oCriteria ); + if (! is_null( $data )) { + return true; + } else { + return false; + } + } catch (Exception $oError) { + throw ($oError); + } + } } diff --git a/workflow/engine/methods/cases/cases_OpenToRevise.php b/workflow/engine/methods/cases/cases_OpenToRevise.php index e25783aea..49e7d7666 100755 --- a/workflow/engine/methods/cases/cases_OpenToRevise.php +++ b/workflow/engine/methods/cases/cases_OpenToRevise.php @@ -134,6 +134,12 @@ while ($rsCriteria->next()) { } } +$processUser = new ProcessUser(); +$userAccess = $processUser->validateUserAccess($aFields['PRO_UID'], $_SESSION['USER_LOGGED'], 'SUPERVISOR'); +if(!$userAccess) { + $flag = false; +} + if ($flag) { G::header("Location: " . $url); } else { diff --git a/workflow/engine/methods/cases/cases_Resume.php b/workflow/engine/methods/cases/cases_Resume.php index 9f58ca53f..547ffc0e8 100755 --- a/workflow/engine/methods/cases/cases_Resume.php +++ b/workflow/engine/methods/cases/cases_Resume.php @@ -117,6 +117,9 @@ $Fields['PRO_TITLE'] = $aProc['PRO_TITLE']; $objTask = new Task(); +if(!isset($Fields['TAS_UID']) || $Fields['TAS_UID'] == '') { + $Fields['TAS_UID'] = $Fields['APP_DATA']['TASK']; +} $aTask = $objTask->load( $Fields['TAS_UID'] ); $Fields['TAS_TITLE'] = $aTask['TAS_TITLE']; diff --git a/workflow/engine/methods/cases/cases_StepToRevise.php b/workflow/engine/methods/cases/cases_StepToRevise.php index 1c8bad02b..eb85a6f3f 100755 --- a/workflow/engine/methods/cases/cases_StepToRevise.php +++ b/workflow/engine/methods/cases/cases_StepToRevise.php @@ -38,6 +38,15 @@ switch ($RBAC->userCanAccess( 'PM_SUPERVISOR' )) { die(); break; } + +$processUser = new ProcessUser(); +$userAccess = $processUser->validateUserAccess($_GET['PRO_UID'], $_SESSION['USER_LOGGED'], 'SUPERVISOR'); +if(!$userAccess) { + G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); + G::header( 'location: ../login/login' ); + die(); +} + $_SESSION = $filter->xssFilterHard($_SESSION,"url"); if ((int) $_SESSION['INDEX'] < 1) { $_SERVER['HTTP_REFERER'] = $filter->xssFilterHard($_SERVER['HTTP_REFERER']); diff --git a/workflow/engine/methods/cases/open.php b/workflow/engine/methods/cases/open.php index b3c2107b1..dcfabcd2d 100755 --- a/workflow/engine/methods/cases/open.php +++ b/workflow/engine/methods/cases/open.php @@ -54,6 +54,17 @@ if (! isset( $_GET['APP_UID'] ) || ! isset( $_GET['DEL_INDEX'] )) { $delIndex = htmlspecialchars($_GET['DEL_INDEX']); } +if( isset($_GET['actionFromList']) && ($_GET['actionFromList'] == 'to_revise') ) { + $oApp = new Application; + $oApp->Load($appUid); + if($oApp->getAppStatus() == 'COMPLETED') { + unset($_GET['to_revise']); + } else { + $_GET['APP_UID'] = $appUid; + $_GET['DEL_INDEX'] = $delIndex; + } +} + require_once ("classes/model/Step.php"); G::LoadClass( "configuration" ); G::LoadClass( "case" ); diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js index 92dc912ed..1d4f594a4 100755 --- a/workflow/engine/templates/cases/casesList.js +++ b/workflow/engine/templates/cases/casesList.js @@ -146,7 +146,6 @@ function openCase(){ } function jumpToCase(appNumber){ - // Code add by Brayan Pereyra - cochalo // This ajax validate the appNumber exists Ext.MessageBox.show({ msg: _('ID_PROCESSING'), wait:true,waitConfig: {interval:200} }); @@ -157,6 +156,12 @@ function jumpToCase(appNumber){ if (res.exists === true) { params = 'APP_NUMBER=' + appNumber; params += '&action=jump'; + + if(action == 'to_revise') { + params += '&to_revise=true'; + params += '&actionFromList=' + action; + } + requestFile = '../cases/open'; redirect(requestFile + '?' + params); } else {