Merged in release/3.2.2 (pull request #6185)

release/3.2.2

Approved-by: Paula Quispe <paula.quispe@processmaker.com>
This commit is contained in:
Paula Quispe
2017-11-17 11:36:40 +00:00
6 changed files with 245 additions and 126 deletions

View File

@@ -82,6 +82,13 @@ try {
$_SESSION['CURRENT_TASK'] = $aFields['TAS_UID'];
}
unset($_SESSION['ACTION']);
$flagJump = '';
if ($_action == 'jump') {
$_SESSION['ACTION'] = 'jump';
$flagJump = 1;
}
switch ($aFields['APP_STATUS']) {
case 'DRAFT':
case 'TO_DO':
@@ -201,13 +208,7 @@ try {
$_SESSION['INDEX'] = $row['DEL_INDEX'];
}
if ($_action == 'jump') {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], 1);
$_SESSION['ACTION'] = 'jump';
} else {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
unset($_SESSION['ACTION']);
}
$Fields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $flagJump);
$_SESSION['CURRENT_TASK'] = $Fields['TAS_UID'];
require_once (PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');
@@ -220,7 +221,7 @@ try {
$_SESSION['PROCESS'] = $aFields['PRO_UID'];
$_SESSION['TASK'] = - 1;
$_SESSION['STEP_POSITION'] = 0;
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
$Fields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $flagJump);
$_SESSION['CURRENT_TASK'] = $Fields['TAS_UID'];
require_once (PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');

View File

@@ -2,13 +2,13 @@
namespace ProcessMaker\BusinessModel\Cases;
use Propel;
use StdClass;
use G;
use Cases as ClassesCase;
use AppDocument;
use Cases as ClassesCases;
use Dynaform;
use Exception;
use G;
use Propel;
use StdClass;
use Task as ClassesTask;
/**
@@ -61,6 +61,13 @@ class ChangeLog
return ['data' => $this->tree, 'totalCount' => $totalCount];
}
/**
* This function get the appHistory related to the case
*
* @param string $appUid
*
* @return array;
*/
private function getResultSet($appUid)
{
$conn = Propel::getConnection('workflow');
@@ -75,6 +82,15 @@ class ChangeLog
return $stmt->getResultSet();
}
/**
* This function read the records, related to the specific result and update the data
*
* @param object $result
* @param integer $start
* @param integer $limit
*
* @return integer;
*/
private function readRecords($result, $start = 0, $limit = 15)
{
$index = 0;
@@ -97,6 +113,13 @@ class ChangeLog
return $index;
}
/**
* This function check if is empty
*
* @param array $data
*
* @return boolean;
*/
private function isEmpty($data)
{
foreach ($data as $key => $value) {
@@ -108,6 +131,16 @@ class ChangeLog
return true;
}
/**
* This function update the data
*
* @param array $data
* @param array $row
* @param boolean $hasPermission
* @param boolean $addToTree
*
* @return integer;
*/
private function updateData($data, $row, $hasPermission, $addToTree = false)
{
$i = 0;
@@ -143,6 +176,13 @@ class ChangeLog
return $i;
}
/**
* This function get the title related to the row
*
* @param array $row
*
* @return string;
*/
private function getHistoryTitle($row)
{
return $this->getObjectTitle($row['TAS_UID'], 'TASK')
@@ -151,6 +191,14 @@ class ChangeLog
.' / '.G::LoadTranslation('ID_USER').': '.$row['USR_USERNAME'];
}
/**
* This function get the object title
*
* @param string $uid
* @param string $objType
*
* @return string;
*/
private function getObjectTitle($uid, $objType)
{
switch ($objType) {
@@ -176,14 +224,30 @@ class ChangeLog
return $title;
}
private function loadPermissions($APP_UID, $PRO_UID, $TAS_UID)
/**
* This function get the permissions
*
* @param string $appUid
* @param string $proUid
* @param string $tasUid
*
* @return void;
*/
private function loadPermissions($appUid, $proUid, $tasUid)
{
$oCase = new ClassesCases();
$this->permissions = $oCase->getAllObjects(
$PRO_UID, $APP_UID, $TAS_UID, $_SESSION['USER_LOGGED']
$proUid, $appUid, $tasUid, $_SESSION['USER_LOGGED']
);
}
/**
* This function verify if has permission
*
* @param string $uid
*
* @return boolean;
*/
private function hasPermission($uid)
{
if(array_search($uid, $this->reservedSteps)!==false) {

View File

@@ -6,8 +6,11 @@
namespace ProcessMaker\BusinessModel\Migrator;
use ProcessMaker\BusinessModel\Migrator\ProcessDefinitionMigrator;
use ProcessMaker\Importer\XmlImporter;
use ProcessMaker\Project\Adapter;
use ProcessMaker\Project\Workflow;
class GranularImporter
{
@@ -300,7 +303,9 @@ class GranularImporter
}
/**
* @param $data
* Regenerate All UIDs of process and Import
*
* @param array $data
* @param bool $generateUid
* @return array
* @throws \Exception
@@ -308,33 +313,40 @@ class GranularImporter
public function regenerateAllUids($data, $generateUid = true)
{
try {
$newData = array();
$arrayBpmnTables = $data["tables"]["bpmn"];
$arrayWorkflowTables = $data["tables"]["workflow"];
$arrayWorkflowFiles = $data["files"]["workflow"];
$newData = [];
$arrayBpmnTables = $data['tables']['bpmn'];
$arrayWorkflowTables = $data['tables']['workflow'];
$arrayWorkflowFiles = $data['files']['workflow'];
$arrayBpmnTablesFormat = $this->structureBpmnData($arrayBpmnTables);
$arrayBpmnTablesFormat['prj_type'] = $arrayWorkflowTables['process']['PRO_TYPE'];
$arrayBpmnTablesFormat['pro_status'] = $arrayWorkflowTables['process']['PRO_STATUS'];
$result = $this->bpmn->createFromStruct($arrayBpmnTablesFormat, $generateUid);
$projectUidOld = $arrayBpmnTables["project"][0]["prj_uid"];
$projectUid = ($generateUid) ? $result[0]["new_uid"] : $result;
$projectUidOld = $arrayBpmnTables['project'][0]['prj_uid'];
$projectUid = ($generateUid) ? $result[0]['new_uid'] : $result;
if ($generateUid) {
$result[0]["object"] = "project";
$result[0]["old_uid"] = $projectUidOld;
$result[0]["new_uid"] = $projectUid;
$result[0]['object'] = 'project';
$result[0]['old_uid'] = $projectUidOld;
$result[0]['new_uid'] = $projectUid;
$workflow = new \ProcessMaker\Project\Workflow();
$workflow = new Workflow();
list($arrayWorkflowTables, $arrayWorkflowFiles) = $workflow->updateDataUidByArrayUid($arrayWorkflowTables, $arrayWorkflowFiles, $result);
}
$newData['tables']['workflow'] = $arrayWorkflowTables;
$newData['tables']['plugins'] = isset($data["tables"]["plugins"]) ? $data["tables"]["plugins"] : [];
$newData['tables']['plugins'] = isset($data['tables']['plugins']) ? $data['tables']['plugins'] : [];
$newData['files']['workflow'] = $arrayWorkflowFiles;
//Update Process Definition after import
//@todo We need check and improve the "Granular Importer", some methods and classes probably can be simplified.
$definition = new ProcessDefinitionMigrator();
$definition->afterImport($newData['tables']);
$this->regeneratedUids = $result;
return array(
return [
'data' => $newData,
'new_uid' => $projectUid);
'new_uid' => $projectUid
];
} catch (\Exception $e) {
throw $e;

View File

@@ -807,7 +807,7 @@ class User
}
//Update in rbac
$rbac->load($userUid);
$rbac->userObj = new RbacUsers();
if (isset($arrayData["USR_ROLE"])) {
$rbac->updateUser($arrayData, $arrayData["USR_ROLE"]);
} else {