diff --git a/workflow/engine/menus/caseOptions.php b/workflow/engine/menus/caseOptions.php index 5f93fb1c8..1c3016f2c 100644 --- a/workflow/engine/menus/caseOptions.php +++ b/workflow/engine/menus/caseOptions.php @@ -25,6 +25,8 @@ global $G_TMP_MENU; global $sStatus; global $RBAC; + +$viewSteps = true; $statusSendAndUnassigned = false; //caseOptions @@ -40,12 +42,9 @@ switch ($_SESSION['actionCaseOptions']) { $statusSendAndUnassigned = true; break; case 'paused': - if (isset($_SESSION['bNoShowSteps'])) { - unset($_SESSION['bNoShowSteps']); - } + $viewSteps = false; break; case 'to_revise': - case 'to_reassign': $access = $RBAC->requirePermissions('PM_REASSIGNCASE', 'PM_SUPERVISOR'); if ($access) { if (isset($_SESSION['bNoShowSteps'])) { @@ -53,8 +52,21 @@ switch ($_SESSION['actionCaseOptions']) { } } break; + case 'to_reassign': + $access = $RBAC->requirePermissions('PM_REASSIGNCASE', 'PM_SUPERVISOR'); + if ($access) { + $aData = AppDelegation::getCurrentUsers($_SESSION['APPLICATION'], $_SESSION['INDEX']); + if (isset($aData) && !in_array($_SESSION['USER_LOGGED'], $aData)) { + $viewSteps = false; + } + } + break; default: + $aData = AppDelegation::getCurrentUsers($_SESSION['APPLICATION'], $_SESSION['INDEX']); unset($_SESSION['bNoShowSteps']); + if (isset($aData) && !in_array($_SESSION['USER_LOGGED'], $aData)) { + $viewSteps = false; + } break; } @@ -64,7 +76,9 @@ if ((($sStatus === 'DRAFT') || ($sStatus === 'TO_DO')) && !$statusSendAndUnassig if (isset($_SESSION['bNoShowSteps'])) { unset($_SESSION['bNoShowSteps']); } else { - $G_TMP_MENU->AddIdOption('STEPS', G::LoadTranslation('ID_STEPS'), 'javascript:showSteps();', 'absolute'); + if ($viewSteps === true) { + $G_TMP_MENU->AddIdOption('STEPS', G::LoadTranslation('ID_STEPS'), 'javascript:showSteps();', 'absolute'); + } $G_TMP_MENU->AddIdOption('INFO', G::LoadTranslation('ID_INFORMATION'), 'javascript:showInformation();', 'absolute'); } $G_TMP_MENU->AddIdOption('ACTIONS', G::LoadTranslation('ID_ACTIONS'), 'javascript:showActions();', 'absolute'); diff --git a/workflow/engine/methods/cases/open.php b/workflow/engine/methods/cases/open.php index ab2b7259c..178854640 100644 --- a/workflow/engine/methods/cases/open.php +++ b/workflow/engine/methods/cases/open.php @@ -29,7 +29,7 @@ */ $tBarGmail = false; -if(isset( $_GET['gmail']) && $_GET['gmail'] == 1){ +if (isset($_GET['gmail']) && $_GET['gmail'] == 1) { $_SESSION['gmail'] = 1; $tBarGmail = true; } @@ -42,7 +42,7 @@ if (!isset($_GET['APP_UID']) && !isset($_GET['APP_NUMBER']) && !isset($_GET['DEL if (!isset($_GET['APP_UID']) && isset($_GET['APP_NUMBER'])) { $oCase = new Cases(); $appUid = $oCase->getApplicationUIDByNumber(htmlspecialchars($_GET['APP_NUMBER'])); - if (is_null( $appUid )) { + if (is_null($appUid)) { throw new Exception(G::LoadTranslation('ID_CASE_DOES_NOT_EXISTS')); } } else { @@ -52,7 +52,7 @@ if (!isset($_GET['APP_UID']) && isset($_GET['APP_NUMBER'])) { if (!isset($_GET['DEL_INDEX'])) { $oCase = new Cases(); $delIndex = $oCase->getCurrentDelegation($appUid, $_SESSION['USER_LOGGED']); - if (is_null( $delIndex )) { + if (is_null($delIndex)) { throw new Exception(G::LoadTranslation('ID_CASE_IS_CURRENTLY_WITH_ANOTHER_USER')); } $_GET['DEL_INDEX'] = $delIndex; @@ -65,7 +65,7 @@ $tasUid = (isset($_GET['TAS_UID'])) ? $tasUid = htmlspecialchars($_GET['TAS_UID' $oCase = new Cases(); $conf = new Configurations(); -$oHeadPublisher = & headPublisher::getSingleton(); +$oHeadPublisher = &headPublisher::getSingleton(); $urlToRedirectAfterPause = 'casesListExtJs'; @@ -75,34 +75,34 @@ if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { $pmGoogle = new PmGoogleApi(); if (array_key_exists('gmail', $_SESSION) && $_SESSION['gmail'] == 1 && $pmGoogle->getServiceGmailStatus()) { $_SESSION['gmail'] = 0; - $urlToRedirectAfterPause = '/sys'. $_SESSION['WORKSPACE'] .'/en/neoclassic/cases/cases_Open?APP_UID='.$_SESSION['APPLICATION'].'&DEL_INDEX='.$_SESSION['INDEX'].'&action=sent'; + $urlToRedirectAfterPause = '/sys' . $_SESSION['WORKSPACE'] . '/en/neoclassic/cases/cases_Open?APP_UID=' . $_SESSION['APPLICATION'] . '&DEL_INDEX=' . $_SESSION['INDEX'] . '&action=sent'; } } /*----------------------------------********---------------------------------*/ -$oHeadPublisher->assign( 'urlToRedirectAfterPause', $urlToRedirectAfterPause ); +$oHeadPublisher->assign('urlToRedirectAfterPause', $urlToRedirectAfterPause); -$oHeadPublisher->addExtJsScript( 'app/main', true ); -$oHeadPublisher->addExtJsScript( 'cases/open', true ); -$oHeadPublisher->assign( 'FORMATS', $conf->getFormats() ); +$oHeadPublisher->addExtJsScript('app/main', true); +$oHeadPublisher->addExtJsScript('cases/open', true); +$oHeadPublisher->assign('FORMATS', $conf->getFormats()); $uri = ''; foreach ($_GET as $k => $v) { $uri .= ($uri == '') ? "$k=$v" : "&$k=$v"; } -if( isset($_GET['action']) && ($_GET['action'] == 'jump') ) { +if (isset($_GET['action']) && ($_GET['action'] == 'jump')) { $oNewCase = new \ProcessMaker\BusinessModel\Cases(); //We need to get the last index OPEN or CLOSED (by Paused cases) //Set true because we need to check if the case is paused $delIndex = $oNewCase->getOneLastThread($appUid, true); - $case = $oCase->loadCase( $appUid, $delIndex, $_GET['action']); + $case = $oCase->loadCase($appUid, $delIndex, $_GET['action']); } else { - $case = $oCase->loadCase( $appUid, $delIndex ); + $case = $oCase->loadCase($appUid, $delIndex); } -if(isset($_GET['actionFromList']) && ($_GET['actionFromList'] === 'to_revise') ){ +if (isset($_GET['actionFromList']) && ($_GET['actionFromList'] === 'to_revise')) { $oSupervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); $caseCanBeReview = $oSupervisor->reviewCaseStatusForSupervisor($appUid, $delIndex); //Check if the case has the correct status for update the information from supervisor/review @@ -112,9 +112,9 @@ if(isset($_GET['actionFromList']) && ($_GET['actionFromList'] === 'to_revise') ) } else { //The supervisor can edit the information, the case are in TO_DO $script = 'cases_OpenToRevise?APP_UID=' . $appUid . '&DEL_INDEX=' . $delIndex . '&TAS_UID=' . $tasUid; - $oHeadPublisher->assign( 'treeToReviseTitle', G::loadtranslation( 'ID_STEP_LIST' ) ); + $oHeadPublisher->assign('treeToReviseTitle', G::loadtranslation('ID_STEP_LIST')); $casesPanelUrl = 'casesToReviseTreeContent?APP_UID=' . $appUid . '&DEL_INDEX=' . $delIndex; - $oHeadPublisher->assign( 'casesPanelUrl', $casesPanelUrl ); //translations + $oHeadPublisher->assign('casesPanelUrl', $casesPanelUrl); //translations echo "
"; } } else { @@ -133,24 +133,24 @@ while ($ds->next()) { $bpmnProjects[] = $row['PRJ_UID']; } $oStep = new Step(); -$oStep = $oStep->loadByProcessTaskPosition( $case['PRO_UID'], $case['TAS_UID'], 1 ); -$oHeadPublisher->assign( 'uri', $script . $uri ); -$oHeadPublisher->assign( '_APP_NUM', '#: ' . $case['APP_NUMBER'] ); -$oHeadPublisher->assign( '_PROJECT_TYPE', in_array($case['PRO_UID'], $bpmnProjects) ? 'bpmn' : 'classic' ); -$oHeadPublisher->assign( '_PRO_UID', $case['PRO_UID']); -$oHeadPublisher->assign( '_APP_UID', $appUid); -$oHeadPublisher->assign( '_ENV_CURRENT_DATE', $conf->getSystemDate( date( 'Y-m-d' ) ) ); -$oHeadPublisher->assign( '_ENV_CURRENT_DATE_NO_FORMAT', date( 'Y-m-d-h-i-A' ) ); -$oHeadPublisher->assign( 'idfirstform', is_null( $oStep ) ? '' : $oStep->getStepUidObj() ); -$oHeadPublisher->assign( 'appStatus', $case['APP_STATUS'] ); -$oHeadPublisher->assign( 'tbarGmail', $tBarGmail); +$oStep = $oStep->loadByProcessTaskPosition($case['PRO_UID'], $case['TAS_UID'], 1); +$oHeadPublisher->assign('uri', $script . $uri); +$oHeadPublisher->assign('_APP_NUM', '#: ' . $case['APP_NUMBER']); +$oHeadPublisher->assign('_PROJECT_TYPE', in_array($case['PRO_UID'], $bpmnProjects) ? 'bpmn' : 'classic'); +$oHeadPublisher->assign('_PRO_UID', $case['PRO_UID']); +$oHeadPublisher->assign('_APP_UID', $appUid); +$oHeadPublisher->assign('_ENV_CURRENT_DATE', $conf->getSystemDate(date('Y-m-d'))); +$oHeadPublisher->assign('_ENV_CURRENT_DATE_NO_FORMAT', date('Y-m-d-h-i-A')); +$oHeadPublisher->assign('idfirstform', is_null($oStep) ? '-1' : $oStep->getStepUidObj()); +$oHeadPublisher->assign('appStatus', $case['APP_STATUS']); +$oHeadPublisher->assign('tbarGmail', $tBarGmail); -if(!isset($_SESSION['APPLICATION']) || !isset($_SESSION['TASK']) || !isset($_SESSION['INDEX'])) { +if (!isset($_SESSION['APPLICATION']) || !isset($_SESSION['TASK']) || !isset($_SESSION['INDEX'])) { $_SESSION['PROCESS'] = $case['PRO_UID']; $_SESSION['APPLICATION'] = $case['APP_UID']; $_SESSION['TASK'] = $case['TAS_UID']; $_SESSION['INDEX'] = $case['DEL_INDEX']; } $_SESSION['actionCaseOptions'] = (isset($_REQUEST['action'])) ? $_REQUEST['action'] : ''; -G::RenderPage( 'publish', 'extJs' ); +G::RenderPage('publish', 'extJs');