Merged develop into bugfix/HOR-3304

This commit is contained in:
Paula Quispe
2017-06-01 14:52:14 -04:00
6 changed files with 63 additions and 60 deletions

View File

@@ -2951,6 +2951,16 @@ class G
return (bool) preg_match( '/^[0-9A-Za-z]{14,}/', $uid );
}
/**
* Verify if the input string is a valid UID of size 32
* @param string $uid
* @return boolean
*/
public static function verifyUniqueID32($uid)
{
return (bool) preg_match('/^[0-9A-Za-z]{32,32}$/', $uid);
}
/**
* is_utf8
*

View File

@@ -2227,15 +2227,16 @@ class Cases
$Fields['DEL_INDEX'] = $iDelIndex;
$Fields['APP_STATUS'] = 'TO_DO';
$Fields['DEL_DELEGATE_DATE'] = $Fields['APP_INIT_DATE'];
if(!$isSubprocess){
if (!$isSubprocess) {
$Fields['APP_STATUS'] = 'DRAFT';
} else {
$Fields['APP_INIT_DATE'] = null;
}
$inbox = new ListInbox();
$inbox->newRow($Fields, $sUsrUid, $isSelfService);
//Multiple Instance
foreach($aUserFields as $rowUser){
foreach ($aUserFields as $rowUser) {
$Fields["USR_UID"] = $rowUser["USR_UID"];
$Fields["DEL_INDEX"] = $rowUser["DEL_INDEX"];
$inbox = new ListInbox();

View File

@@ -2494,7 +2494,7 @@ class wsBase
}
//Execute events
$eventPro = $_SESSION["PROCESS"];
$eventPro = $appFields['PRO_UID'];
$eventApp = $caseId;
$eventInd = $aAppDel['DEL_INDEX'];
$eventTas = $aAppDel['TAS_UID'];

View File

@@ -68,6 +68,8 @@
// include Gulliver Class
require_once( PATH_GULLIVER . PATH_SEP . 'class.g.php');
// include Bootstrap Class
require_once (PATH_GULLIVER . PATH_SEP . 'class.bootstrap.php');
if(file_exists(FILE_PATHS_INSTALLED)) {
// backward compatibility; parsing old definitions in the compiled path constant

View File

@@ -268,27 +268,17 @@ switch ($_POST['action']) {
$limit = isset( $_REQUEST['limit'] ) ? $_REQUEST['limit'] : $limit_size;
$filter = isset( $_REQUEST['textFilter'] ) ? $_REQUEST['textFilter'] : '';
$sGroupUID = $_REQUEST['gUID'];
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( GroupUserPeer::GRP_UID );
$oCriteria->addSelectColumn( UsersPeer::USR_UID );
$oCriteria->addJoin( GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );
$oCriteria->add( GroupUserPeer::GRP_UID, $sGroupUID );
$oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
$oDataset = UsersPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$uUIDs = array ();
while ($aRow = $oDataset->getRow()) {
$uUIDs[] = $aRow['USR_UID'];
$oDataset->next();
}
$inputFilter = new InputFilter();
$subQuery = "SELECT " . GroupUserPeer::USR_UID .
" FROM " . GroupUserPeer::TABLE_NAME .
" WHERE " . GroupUserPeer::GRP_UID . " = '" .
$inputFilter->quoteSmart($_REQUEST['gUID'], Propel::getConnection("workflow")) . "'";
$aUsers = Array ();
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( 'COUNT(*) AS CNT' );
$oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
$oCriteria->add( UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN );
$oCriteria->add( UsersPeer::USR_UID, UsersPeer::USR_UID . " NOT IN ($subQuery)", Criteria::CUSTOM );
$filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
if ($filter != '') {
$oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );
@@ -307,7 +297,7 @@ switch ($_POST['action']) {
$oCriteria->addSelectColumn( UsersPeer::USR_EMAIL );
$oCriteria->addSelectColumn( UsersPeer::USR_STATUS );
$oCriteria->add( UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL );
$oCriteria->add( UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN );
$oCriteria->add( UsersPeer::USR_UID, UsersPeer::USR_UID . " NOT IN ($subQuery)", Criteria::CUSTOM );
$filter = (isset( $_POST['textFilter'] )) ? $_POST['textFilter'] : '';
if ($filter != '') {
$oCriteria->add( $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ) );

View File

@@ -29,35 +29,35 @@ if (PMLicensedFeatures
*/
$backupSession = serialize($_SESSION);
if ($_REQUEST['APP_UID'] == '') {
if($_GET['APP_UID'] == ''){
if (empty($_GET['APP_UID'])) {
$sw = empty($_REQUEST['APP_UID']);
if (!$sw && !G::verifyUniqueID32($_REQUEST['APP_UID'])) {
$_GET['APP_UID'] = $_REQUEST['APP_UID'];
}
if ($sw) {
throw new Exception('The parameter APP_UID is empty.');
} else {
$_REQUEST['APP_UID'] = $_GET['APP_UID'];
}
}
if ($_REQUEST['DEL_INDEX'] == '') {
if (empty($_REQUEST['DEL_INDEX'])) {
throw new Exception('The parameter DEL_INDEX is empty.');
}
if ($_REQUEST['ABER'] == '') {
if (empty($_REQUEST['ABER'])) {
throw new Exception('The parameter ABER is empty.');
}
if (!isset($_REQUEST['form'])) {
$_REQUEST['form'] = array();
}
$appUid = G::decrypt($_GET['APP_UID'], URL_KEY);
$delIndex = G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY);
$aber = G::decrypt($_REQUEST['ABER'], URL_KEY);
$forms = isset($_REQUEST['form']) ? $_REQUEST['form'] : [];
$_REQUEST['APP_UID'] = G::decrypt($_REQUEST['APP_UID'], URL_KEY);
$_REQUEST['DEL_INDEX'] = G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY);
$_REQUEST['ABER'] = G::decrypt($_REQUEST['ABER'], URL_KEY);
G::LoadClass('case');
$case = new Cases();
$casesFields = $case->loadCase($_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX']);
$casesFields = $case->loadCase($appUid, $delIndex);
$casesFields['APP_DATA'] = array_merge($casesFields['APP_DATA'], $_REQUEST['form']);
$casesFields['APP_DATA'] = array_merge($casesFields['APP_DATA'], $forms);
//Get user info
$current_user_uid = null;
@@ -66,8 +66,8 @@ if (PMLicensedFeatures
$criteria = new Criteria("workflow");
$criteria->addSelectColumn(AppDelegationPeer::USR_UID);
$criteria->add(AppDelegationPeer::APP_UID, $_REQUEST["APP_UID"]);
$criteria->add(AppDelegationPeer::DEL_INDEX, $_REQUEST["DEL_INDEX"]);
$criteria->add(AppDelegationPeer::APP_UID, $appUid);
$criteria->add(AppDelegationPeer::DEL_INDEX, $delIndex);
$rsSQL = AppDelegationPeer::doSelectRS($criteria);
$rsSQL->setFetchmode(ResultSet::FETCHMODE_ASSOC);
@@ -101,18 +101,18 @@ if (PMLicensedFeatures
}
//Update case info
$case->updateCase($_REQUEST['APP_UID'], $casesFields);
$case->updateCase($appUid, $casesFields);
G::LoadClass('wsBase');
$wsBaseInstance = new wsBase();
$result = $wsBaseInstance->derivateCase($casesFields['CURRENT_USER_UID'], $_REQUEST['APP_UID'], $_REQUEST ['DEL_INDEX'], true);
$result = $wsBaseInstance->derivateCase($casesFields['CURRENT_USER_UID'], $appUid, $delIndex, true);
$code = (is_array($result) ? $result['status_code'] : $result->status_code);
$dataResponses = array();
$dataResponses['ABE_REQ_UID'] = $_REQUEST['ABER'];
$dataResponses['ABE_REQ_UID'] = $aber;
$dataResponses['ABE_RES_CLIENT_IP'] = $_SERVER['REMOTE_ADDR'];
$dataResponses['ABE_RES_DATA'] = serialize($_REQUEST['form']);
$dataResponses['ABE_RES_DATA'] = serialize($forms);
$dataResponses['ABE_RES_STATUS'] = 'PENDING';
$dataResponses['ABE_RES_MESSAGE'] = '';
@@ -129,13 +129,13 @@ if (PMLicensedFeatures
//Save Cases Notes
include_once 'utils.php';
$dataAbeRequests = loadAbeRequest($_REQUEST['ABER']);
$dataAbeRequests = loadAbeRequest($aber);
$dataAbeConfiguration = loadAbeConfiguration($dataAbeRequests['ABE_UID']);
if ($dataAbeConfiguration['ABE_CASE_NOTE_IN_RESPONSE'] == 1) {
$response = new stdclass();
$response->usrUid = $casesFields['APP_DATA']['USER_LOGGED'];
$response->appUid = $_REQUEST['APP_UID'];
$response->appUid = $appUid;
$response->noteText = "Check the information that was sent for the receiver: " . $dataAbeRequests['ABE_REQ_SENT_TO'];
postNote($response);
@@ -144,10 +144,10 @@ if (PMLicensedFeatures
$dataAbeRequests['ABE_REQ_ANSWERED'] = 1;
$code == 0 ? uploadAbeRequest($dataAbeRequests) : '';
if (isset ( $_FILES ['form'] )) {
if (isset( $_FILES["form"]["name"] ) && count( $_FILES["form"]["name"] ) > 0) {
if (isset($_FILES ['form'])) {
if (isset($_FILES["form"]["name"]) && count($_FILES["form"]["name"]) > 0) {
$oInputDocument = new \ProcessMaker\BusinessModel\Cases\InputDocument();
$oInputDocument->uploadFileCase($_FILES, $case, $casesFields, $current_user_uid, $_REQUEST['APP_UID'], $_REQUEST["DEL_INDEX"]);
$oInputDocument->uploadFileCase($_FILES, $case, $casesFields, $current_user_uid, $appUid, $delIndex);
}
}
@@ -155,8 +155,8 @@ if (PMLicensedFeatures
$aMessage['MESSAGE'] = '<strong>The information was submitted. Thank you.</strong>';
} else {
throw new Exception('An error occurred while the application was being processed.<br /><br />
Error code: '.$result->status_code.'<br />
Error message: '.$result->message.'<br /><br />');
Error code: ' . $result->status_code . '<br />
Error message: ' . $result->message . '<br /><br />');
}
// Update
@@ -173,7 +173,7 @@ if (PMLicensedFeatures
$_SESSION = unserialize($backupSession);
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showInfo', '', $aMessage);
} catch (Exception $error) {
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', array('MESSAGE' => $error->getMessage().' Please contact to your system administrator.'));
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', array('MESSAGE' => $error->getMessage() . ' Please contact to your system administrator.'));
}
$_SESSION = unserialize($backupSession);
G::RenderPage('publish', 'blank');