diff --git a/gulliver/system/class.rbac.php b/gulliver/system/class.rbac.php index a00462966..6e414bb5e 100644 --- a/gulliver/system/class.rbac.php +++ b/gulliver/system/class.rbac.php @@ -43,6 +43,7 @@ use ProcessMaker\Exception\RBACException; */ class RBAC { + const ADMIN_USER_UID = '00000000000000000000000000000001'; const SETUPERMISSIONUID = '00000000000000000000000000000002'; const PER_SYSTEM = '00000000000000000000000000000002'; const PM_GUEST_CASE = 'PM_GUEST_CASE'; diff --git a/workflow/engine/bin/tasks/cliWorkspaces.php b/workflow/engine/bin/tasks/cliWorkspaces.php index 2666f4201..488f1cce7 100644 --- a/workflow/engine/bin/tasks/cliWorkspaces.php +++ b/workflow/engine/bin/tasks/cliWorkspaces.php @@ -151,21 +151,6 @@ EOT CLI::taskOpt("workspace", "Select the workspace whose case folders will be migrated, if multiple workspaces are present in the server.\n Ex: -wworkflow. Ex: --workspace=workflow", "w:", "workspace="); CLI::taskRun("runStructureDirectories"); -CLI::taskName("database-generate-self-service-by-value"); -CLI::taskDescription(<<xssFilterHard($opts); - $args = $filter->xssFilterHard($args); - try { - $arrayWorkspace = get_workspaces_from_args($args); - - foreach ($arrayWorkspace as $value) { - $workspace = $value; - - try { - G::outRes("Generating the table \"self-service by value\" for " . pakeColor::colorize($workspace->name, "INFO") . "\n"); - $workspace->appAssignSelfServiceValueTableGenerateData(); - } catch (Exception $e) { - G::outRes("Errors generating the table \"self-service by value\" of workspace " . CLI::info($workspace->name) . ": " . CLI::error($e->getMessage()) . "\n"); - } - - echo "\n"; - } - - echo "Done!\n"; - } catch (Exception $e) { - G::outRes(CLI::error($e->getMessage()) . "\n"); - } -} - function run_database_verify_consistency($args, $opts) { verifyAppCacheConsistency($args); diff --git a/workflow/engine/classes/Cases.php b/workflow/engine/classes/Cases.php index fcf744b51..a9284ba7c 100644 --- a/workflow/engine/classes/Cases.php +++ b/workflow/engine/classes/Cases.php @@ -1974,12 +1974,6 @@ class Cases $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->refresh($data); /*----------------------------------********---------------------------------*/ - - /** This case is subProcess? */ - if (SubApplication::isCaseSubProcess($appUid)) { - $route = new Derivation(); - $route->verifyIsCaseChild($appUid, $delIndex); - } } /** Update search index */ @@ -1993,6 +1987,7 @@ class Cases /** * With this we can change the status to CLOSED in APP_DELEGATION + * We close a thread in the action: paused reassign cancel * * @param string $appUid * @param string $delIndex @@ -2035,12 +2030,6 @@ class Cases $listParticipatedLast->refresh($data); /*----------------------------------********---------------------------------*/ - /** This case is subProcess? */ - if (SubApplication::isCaseSubProcess($appUid)) { - $route = new Derivation(); - $route->verifyIsCaseChild($appUid, $delIndex); - } - /** Update searchindex */ if ($this->appSolr != null) { $this->appSolr->updateApplicationSearchIndex($appUid); @@ -4260,7 +4249,7 @@ class Cases } /** - * This function will be close the one or all threads + * This function will be close the one or all threads for cancel the case * * @param string $appUid * @param integer $delIndex, if is null we will to close all threads @@ -4288,6 +4277,14 @@ class Cases $result[] = $resultDelegation; } + /** This case is subProcess? */ + if (SubApplication::isCaseSubProcess($appUid)) { + foreach ($result as $value){ + $route = new Derivation(); + $route->verifyIsCaseChild($appUid, $value['DEL_INDEX']); + } + } + return $result; } diff --git a/workflow/engine/classes/Derivation.php b/workflow/engine/classes/Derivation.php index 6214b8928..fe5fb0c10 100644 --- a/workflow/engine/classes/Derivation.php +++ b/workflow/engine/classes/Derivation.php @@ -1071,7 +1071,8 @@ class Derivation $taskNextDel, $iNewDelIndex, $nextDel["TAS_UID"], - $appFields + $appFields, + $taskNextDel->getTasId() ); } @@ -1135,7 +1136,9 @@ class Derivation //Close case $appFields["APP_STATUS"] = "COMPLETED"; $appFields["APP_FINISH_DATE"] = "now"; - $this->verifyIsCaseChild($currentDelegation["APP_UID"], $currentDelegation["DEL_INDEX"]); + if (SubApplication::isCaseSubProcess($currentDelegation["APP_UID"])) { + $this->verifyIsCaseChild($currentDelegation["APP_UID"], $currentDelegation["DEL_INDEX"]); + } $flagUpdateCase = true; } @@ -1489,51 +1492,18 @@ class Derivation function verifyIsCaseChild($applicationUid, $delIndex = 0) { //Obtain the related row in the table SUB_APPLICATION - $criteria = new Criteria('workflow'); - $criteria->add(SubApplicationPeer::APP_UID, $applicationUid); - $dataSet = SubApplicationPeer::doSelectRS($criteria); - $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); - - if ($dataSet->next()) { - $subApplication = $dataSet->getRow(); + $subApplication = SubApplication::getSubProcessInfo($applicationUid); + if (!empty($subApplication)) { //Obtain the related row in the table SUB_PROCESS $case = new Cases(); $parentCase = $case->loadCase($subApplication['APP_PARENT'], $subApplication['DEL_INDEX_PARENT']); - $criteria = new Criteria('workflow'); - $criteria->add(SubProcessPeer::PRO_PARENT, $parentCase['PRO_UID']); - $criteria->add(SubProcessPeer::TAS_PARENT, $parentCase['TAS_UID']); - $dataSet = SubProcessPeer::doSelectRS($criteria); - $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $dataSet->next(); - $subApplicationParent = $dataSet->getRow(); - if ($subApplicationParent['SP_SYNCHRONOUS'] == 1 || $subApplication['SA_STATUS'] == 'ACTIVE') { + + $subProcessParent = SubProcess::getSubProcessConfiguration($parentCase['PRO_UID'], $parentCase['TAS_UID']); + if ($subProcessParent['SP_SYNCHRONOUS'] == 1 || $subApplication['SA_STATUS'] == 'ACTIVE') { $appFields = $case->loadCase($applicationUid, $delIndex); //Copy case variables to parent case - $fields = unserialize($subApplicationParent['SP_VARIABLES_IN']); - $newFields = []; - foreach ($fields as $originField => $targetField) { - $originField = str_replace('@', '', $originField); - $originField = str_replace('#', '', $originField); - $originField = str_replace('%', '', $originField); - $originField = str_replace('?', '', $originField); - $originField = str_replace('$', '', $originField); - $originField = str_replace('=', '', $originField); - $targetField = str_replace('@', '', $targetField); - $targetField = str_replace('#', '', $targetField); - $targetField = str_replace('%', '', $targetField); - $targetField = str_replace('?', '', $targetField); - $targetField = str_replace('$', '', $targetField); - $targetField = str_replace('=', '', $targetField); - $newFields[$targetField] = isset($appFields['APP_DATA'][$originField]) ? $appFields['APP_DATA'][$originField] : ''; - - if (array_key_exists($originField . '_label', $appFields['APP_DATA'])) { - $newFields[$targetField . '_label'] = $appFields['APP_DATA'][$originField . '_label']; - } else { - if (array_key_exists($targetField . '_label', $parentCase['APP_DATA'])) { - $newFields[$targetField . '_label'] = ''; - } - } - } + $fields = unserialize($subProcessParent['SP_VARIABLES_IN']); + $newFields = $this->getSubProcessVariables($fields, $appFields['APP_DATA'], $parentCase['APP_DATA']); $parentCase['APP_DATA'] = array_merge($parentCase['APP_DATA'], $newFields); $case->updateCase($subApplication['APP_PARENT'], $parentCase); @@ -1650,7 +1620,45 @@ class Derivation } } - /* getDerivatedCases + /** + * Will be get sub process variables + * Get variables-in and variables-out + * + * @param array $fields + * @param array $childCaseData + * @param array $parentCaseData + * + * @return array + */ + public function getSubProcessVariables($fields, $childCaseData, $parentCaseData) + { + $newFields = []; + foreach ($fields as $originField => $targetField) { + $originField = str_replace('@', '', $originField); + $originField = str_replace('#', '', $originField); + $originField = str_replace('%', '', $originField); + $originField = str_replace('?', '', $originField); + $originField = str_replace('$', '', $originField); + $originField = str_replace('=', '', $originField); + $targetField = str_replace('@', '', $targetField); + $targetField = str_replace('#', '', $targetField); + $targetField = str_replace('%', '', $targetField); + $targetField = str_replace('?', '', $targetField); + $targetField = str_replace('$', '', $targetField); + $targetField = str_replace('=', '', $targetField); + $newFields[$targetField] = isset($childCaseData[$originField]) ? $childCaseData[$originField] : ''; + + if (array_key_exists($originField . '_label', $childCaseData)) { + $newFields[$targetField . '_label'] = $childCaseData[$originField . '_label']; + } elseif (array_key_exists($targetField . '_label', $parentCaseData)) { + $newFields[$targetField . '_label'] = ''; + } + } + + return $newFields; + } + + /** getDerivatedCases * get all derivated cases and subcases from any task, * this function is useful to know who users have been assigned and what task they do. * @@ -2081,13 +2089,16 @@ class Derivation /** * When we route a case we will to create a record in the table APP_ASSIGN_SELF_SERVICE_VALUE if the task is SELF_SERVICE + * * @param object $taskNextDel * @param integer $iNewDelIndex * @param string $nextTasUid * @param array $appFields + * @param integer $nextTasId + * * @return void */ - public function createRecordAppSelfServiceValue($taskNextDel, $iNewDelIndex, $nextTasUid, $appFields) + public function createRecordAppSelfServiceValue($taskNextDel, $iNewDelIndex, $nextTasUid, $appFields, $nextTasId = 0) { if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") { $nextTaskGroupVariable = trim($taskNextDel->getTasGroupVariable(), " @#"); @@ -2101,11 +2112,13 @@ class Derivation $appAssignSelfServiceValue->create( $appFields["APP_UID"], $iNewDelIndex, - array( + [ "PRO_UID" => $appFields["PRO_UID"], "TAS_UID" => $nextTasUid, - "GRP_UID" => "" - ), + "GRP_UID" => "", + "APP_NUMBER" => !empty($appFields["APP_NUMBER"]) ? $appFields["APP_NUMBER"] : 0, + "TAS_ID" => $nextTasId + ], $dataVariable ); } diff --git a/workflow/engine/classes/ProcessMap.php b/workflow/engine/classes/ProcessMap.php index a2923e278..69bac75e0 100644 --- a/workflow/engine/classes/ProcessMap.php +++ b/workflow/engine/classes/ProcessMap.php @@ -946,7 +946,7 @@ class ProcessMap } } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableBB'] = $aBB; $_SESSION['_DBArray'] = $_DBArray; $oCriteria = new Criteria('dbarray'); @@ -1125,7 +1125,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['taskUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; @@ -1201,7 +1201,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; @@ -2017,7 +2017,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['inputDocArrayMain'] = $inputDocArray; $_SESSION['_DBArray'] = $_DBArray; @@ -2681,7 +2681,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['processes'] = $aProcesses; $_SESSION['_DBArray'] = $_DBArray; @@ -2788,7 +2788,7 @@ class ProcessMap } } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['reports'] = $row; $_SESSION['_DBArray'] = $_DBArray; @@ -3399,7 +3399,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['objectsPermissions'] = $aObjectsPermissions; $_SESSION['_DBArray'] = $_DBArray; @@ -3647,7 +3647,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['allObjects'] = $aAllObjects; $_DBArray['allDynaforms'] = $aAllDynaforms; $_DBArray['allInputs'] = $aAllInputs; @@ -3805,7 +3805,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['allObjects'] = $aAllObjects; $_DBArray['allDynaforms'] = $aAllDynaforms; $_DBArray['allInputs'] = $aAllInputs; @@ -4000,7 +4000,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableObjects'] = $aAvailableObjects; $_SESSION['_DBArray'] = $_DBArray; @@ -4119,7 +4119,7 @@ class ProcessMap $aDirectories[] = array('DIRECTORY' => '' . G::loadTranslation('ID_TEMPLATES') . '' ); $aDirectories[] = array('DIRECTORY' => '' . G::loadTranslation('ID_PUBLIC') . '' ); - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['directories'] = $aDirectories; $_SESSION['_DBArray'] = $_DBArray; @@ -4184,7 +4184,7 @@ class ProcessMap $aTheFiles[] = array('PATH' => $aFile['FILE'], 'EDIT' => ($sMainDirectory == 'mailTemplates' ? 'Edit' : ''), 'EDIT_JS' => "editFile('{$sProcessUID}', @@PATH);return false;", 'DOWNLOAD_TEXT' => G::LoadTranslation('ID_DOWNLOAD'), 'DOWNLOAD_JS' => 'downloadFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile['FILE'] . '\');return false;', 'DELETE_TEXT' => G::LoadTranslation('ID_DELETE'), 'DELETE_JS' => 'deleteFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile['FILE'] . '\');return false;' ); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['objects'] = $aTheFiles; $_SESSION['_DBArray'] = $_DBArray; @@ -4347,7 +4347,7 @@ class ProcessMap /* Prepare page before to show */ global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['NewCase'] = $this->subProcess_TaskIni($sProcessUID); unset($_DBArray['TheProcesses']); $_DBArray['TheProcesses'][] = array('pro_uid' => 'char', 'value' => 'char'); @@ -4947,7 +4947,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['taskUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; @@ -5018,7 +5018,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; @@ -5144,7 +5144,7 @@ class ProcessMap } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableBB'] = $aBB; $_SESSION['_DBArray'] = $_DBArray; @@ -5262,7 +5262,7 @@ class ProcessMap } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['steps'] = $aSteps; $_SESSION['_DBArray'] = $_DBArray; @@ -5637,7 +5637,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['outputDocArray'] = $outputDocArray; $_SESSION['_DBArray'] = $_DBArray; @@ -5664,7 +5664,7 @@ class ProcessMap /* Prepare page before to show */ global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['NewCase'] = $this->subProcess_TaskIni($sProcessUID); unset($_DBArray['TheProcesses']); $_DBArray['TheProcesses'][] = array('pro_uid' => 'char', 'value' => 'char' ); @@ -6203,7 +6203,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); switch ($sAction) { case 'tasks': @@ -6311,7 +6311,7 @@ class ProcessMap } // return $aObjects; global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['objects'] = $aObjects; $_SESSION['_DBArray'] = $_DBArray; @@ -6494,7 +6494,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['availableUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; return $_SESSION['_DBArray']['availableUsers']; @@ -6573,7 +6573,7 @@ class ProcessMap $oDataset->next(); } global $_DBArray; - $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : ''); + $_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []); $_DBArray['taskUsers'] = $aUsers; $_SESSION['_DBArray'] = $_DBArray; $oCriteria = new Criteria('dbarray'); diff --git a/workflow/engine/classes/Processes.php b/workflow/engine/classes/Processes.php index b4a2b66d7..e5feaa43d 100644 --- a/workflow/engine/classes/Processes.php +++ b/workflow/engine/classes/Processes.php @@ -3083,32 +3083,37 @@ class Processes /** * Get Groupwf Rows for a Process form an array * - * @param array $aGroups - * @return array $aGroupwf + * @param array $groups + * + * @return array $groupList + * @throws Exception */ - public function getGroupwfRows($aGroups) + public function getGroupwfRows($groups) { try { - $aInGroups = array(); - foreach ($aGroups as $key => $val) { - $aInGroups[] = $val['USR_UID']; + $inGroups = []; + foreach ($groups as $key => $val) { + $inGroups[] = $val['USR_UID']; } - $aGroupwf = array(); - $oCriteria = new Criteria('workflow'); - $oCriteria->add(GroupwfPeer::GRP_UID, $aInGroups, Criteria::IN); - $oDataset = GroupwfPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - while ($aRow = $oDataset->getRow()) { - $oGroupwf = new Groupwf(); - $aGroupwf[] = $oGroupwf->Load($aRow['GRP_UID']); - $oDataset->next(); + $groupList = []; + $criteria = new Criteria('workflow'); + $criteria->add(GroupwfPeer::GRP_UID, $inGroups, Criteria::IN); + $dataset = GroupwfPeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + while ($row = $dataset->getRow()) { + $groupWf = new Groupwf(); + $infoGroup = $groupWf->Load($row['GRP_UID']); + unset($infoGroup['GRP_ID']); + $groupList[] = $infoGroup; + + $dataset->next(); } - return $aGroupwf; - } catch (Exception $oError) { - throw ($oError); + return $groupList; + } catch (Exception $error) { + throw ($error); } } @@ -3783,19 +3788,24 @@ class Processes } /** - * Get Task User Rows from an array of data + * Get Task User rows from an array of data * - * @param array $aTaskUser + * @param array $group * @return array $aStepTrigger */ - public function createGroupRow($aGroupwf) + public function createGroupRow($group) { - foreach ($aGroupwf as $key => $row) { - $oGroupwf = new Groupwf(); - if ($oGroupwf->GroupwfExists($row['GRP_UID'])) { - $oGroupwf->remove($row['GRP_UID']); + foreach ($group as $key => $row) { + $groupWf = new Groupwf(); + if ($groupWf->GroupwfExists($row['GRP_UID'])) { + $groupInfo = $groupWf->Load($row['GRP_UID']); + $groupWf->remove($row['GRP_UID']); } - $res = $oGroupwf->create($row); + //We will to keep the GRP_ID + if (!empty($groupInfo['GRP_ID'])) { + $row['GRP_ID'] = $groupInfo['GRP_ID']; + } + $res = $groupWf->create($row); } } diff --git a/workflow/engine/classes/WorkspaceTools.php b/workflow/engine/classes/WorkspaceTools.php index 52b24b706..21d403cd5 100644 --- a/workflow/engine/classes/WorkspaceTools.php +++ b/workflow/engine/classes/WorkspaceTools.php @@ -1828,9 +1828,11 @@ class WorkspaceTools * @param string $filename the backup filename * @param string $srcWorkspace name of the source workspace * @param string $dstWorkspace name of the destination workspace - * @param string $overwrite if you need overwrite the database + * @param boolean $overwrite if you need overwrite the database * @param string $lang for define the language * @param string $port of database if is empty take 3306 + * + * @throws Exception */ public static function restore($filename, $srcWorkspace, $dstWorkspace = null, $overwrite = true, $lang = 'en', $port = '', $optionMigrateHistoryData = []) { @@ -2095,6 +2097,12 @@ class WorkspaceTools $stop = microtime(true); CLI::logging("<*> Migrating history data took " . ($stop - $start) . " seconds.\n"); /*----------------------------------********---------------------------------*/ + + $start = microtime(true); + CLI::logging("> Optimizing Self-Service data in table APP_ASSIGN_SELF_SERVICE_VALUE_GROUP....\n"); + $workspace->upgradeSelfServiceData(); + $stop = microtime(true); + CLI::logging("<*> Optimizing Self-Service data in table APP_ASSIGN_SELF_SERVICE_VALUE_GROUP took " . ($stop - $start) . " seconds.\n"); } CLI::logging("Removing temporary files\n"); @@ -2209,6 +2217,7 @@ class WorkspaceTools $oauthClients->setClientDescription('ProcessMaker Web Designer App'); $oauthClients->setClientWebsite('www.processmaker.com'); $oauthClients->setRedirectUri($endpoint); + $oauthClients->setUsrUid('00000000000000000000000000000001'); $oauthClients->save(); } @@ -2220,6 +2229,7 @@ class WorkspaceTools $oauthClients->setClientDescription(config('oauthClients.mobile.clientDescription')); $oauthClients->setClientWebsite(config('oauthClients.mobile.clientWebsite')); $oauthClients->setRedirectUri($endpoint); + $oauthClients->setUsrUid('00000000000000000000000000000001'); $oauthClients->save(); } } else { @@ -2319,7 +2329,10 @@ class WorkspaceTools /** * Generate data for table APP_ASSIGN_SELF_SERVICE_VALUE * - * return void + * @return void + * @throws Exception + * + * @deprecated Method deprecated in Release 3.3.0 */ public function appAssignSelfServiceValueTableGenerateData() { @@ -4052,9 +4065,7 @@ class WorkspaceTools $con->commit(); /*----------------------------------********---------------------------------*/ - CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n"); - - // Populating PRO_ID, USR_ID + // Populating PRO_ID, USR_ID IN LIST TABLES CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* \n"); $con->begin(); $stmt = $con->createStatement(); @@ -4063,7 +4074,37 @@ class WorkspaceTools } $con->commit(); - CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* Done \n"); + // Populating APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER + CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER \n"); + $con->begin(); + $stmt = $con->createStatement(); + $rs = $stmt->executeQuery("UPDATE APP_ASSIGN_SELF_SERVICE_VALUE AS APP_SELF + INNER JOIN ( + SELECT APPLICATION.APP_UID, APPLICATION.APP_NUMBER + FROM APPLICATION + ) AS APP + ON (APP_SELF.APP_UID = APP.APP_UID) + SET APP_SELF.APP_NUMBER = APP.APP_NUMBER + WHERE APP_SELF.APP_NUMBER = 0"); + $con->commit(); + + // Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID + CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID \n"); + $con->begin(); + $stmt = $con->createStatement(); + $rs = $stmt->executeQuery("UPDATE APP_ASSIGN_SELF_SERVICE_VALUE AS APP_SELF + INNER JOIN ( + SELECT TASK.TAS_UID, TASK.TAS_ID + FROM TASK + ) AS TASK + ON (APP_SELF.TAS_UID = TASK.TAS_UID) + SET APP_SELF.TAS_ID = TASK.TAS_ID + WHERE APP_SELF.TAS_ID = 0"); + $con->commit(); + CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID Done \n"); + + //Complete all migrations + CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n"); } /** diff --git a/workflow/engine/classes/WsBase.php b/workflow/engine/classes/WsBase.php index 1d4da5708..52b10c612 100644 --- a/workflow/engine/classes/WsBase.php +++ b/workflow/engine/classes/WsBase.php @@ -1336,13 +1336,21 @@ class WsBase } } - $strRole = $RBAC->getRoleCodeValid($role); - if (empty($strRole)) { - $data = []; - $data["ROLE"] = $role; - $result = new WsCreateUserResponse(6, G::loadTranslation("ID_INVALID_ROLE", SYS_LANG, $data), null); + if (!empty($role)) { + if ($userUid === $RBAC::ADMIN_USER_UID) { + $result = new WsResponse(15, G::LoadTranslation("ID_ADMINISTRATOR_ROLE_CANT_CHANGED")); - return $result; + return $result; + } + + $strRole = $RBAC->getRoleCodeValid($role); + if (empty($strRole)) { + $data = []; + $data["ROLE"] = $role; + $result = new WsCreateUserResponse(6, G::loadTranslation("ID_INVALID_ROLE", SYS_LANG, $data), null); + + return $result; + } } if (!empty($password) && strlen($password) > 20) { diff --git a/workflow/engine/classes/WsResponse.php b/workflow/engine/classes/WsResponse.php index ea6cc4e92..70add2778 100644 --- a/workflow/engine/classes/WsResponse.php +++ b/workflow/engine/classes/WsResponse.php @@ -2,6 +2,48 @@ class WsResponse { + /** + * Status used from $status_code + * 0 ID_COMMAND_EXECUTED_SUCCESSFULY + * + * 2 ID_USER_HAVENT_RIGHTS_SYSTEM + * 3 ID_USER_NOT_REGISTERED + * 4 ID_WRONG_PASS + * 5 ID_USER_INACTIVE + * 6 ID_INVALID_ROLE + * 7 ID_USERNAME_ALREADY_EXISTS + * 8 ID_USER_NOT_REGISTERED_GROUP + * 9 ID_GROUP_NOT_REGISTERED_SYSTEM + * 10 ID_ARRAY_VARIABLES_EMPTY + * 11 ID_INVALID_PROCESS + * 12 ID_NO_STARTING_TASK + * 13 ID_MULTIPLE_STARTING_TASKS + * 14 ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK + * 15 ID_ADMINISTRATOR_ROLE_CANT_CHANGED + * 16 ID_CASE_DOES_NOT_EXIST + * 17 ID_CASE_ASSIGNED_ANOTHER_USER + * 18 ID_CASE_DELEGATION_ALREADY_CLOSED + * 19 ID_CASE_IN_STATUS APP_TYPE + * 20 ID_SPECIFY_DELEGATION_INDEX + * 21 ID_CAN_NOT_ROUTE_CASE_USING_WEBSERVICES + * 22 ID_TASK_DOES_NOT_HAVE_ROUTING_RULE + * 23 ID_VARIABLES_PARAM_ZERO + * 24 ID_VARIABLES_PARAM_NOT_ARRAY + * 25 ID_USERNAME_REQUIRED + * 26 ID_PASSWD_REQUIRED + * 27 ID_MSG_ERROR_USR_FIRSTNAME + * 28 ID_TEMPLATE_FILE_NOT_EXIST + * 29 Email does not sent + * 30 ID_TARGET_ORIGIN_USER_SAME + * 31 ID_INVALID_ORIGIN_USER + * 32 ID_CASE_NOT_OPEN + * 33 ID_INVALID_CASE_DELEGATION_INDEX + * 34 ID_TARGET_USER_DOES_NOT_HAVE_RIGHTS + * 35 ID_TARGET_USER_DESTINATION_INVALID + * 36 ID_CASE_COULD_NOT_REASSIGNED + * + * 100 Exception + */ public $status_code = 0; public $message = ''; public $timestamp = ''; diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index 3dd6033bb..a2a3a4429 100644 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -2240,6 +2240,10 @@ function PMFUpdateUser ($userUid, $userName, $firstName = null, $lastName = null $ws = new WsBase(); $result = $ws->updateUser( $userUid, $userName, $firstName, $lastName, $email, $dueDate, $status, $role, $password ); + //When the user is created the $result parameter is an array, in other case is a object exception + if (!is_object($result)) { + $result = (object)$result; + } if ($result->status_code == 0) { return 1; } else { diff --git a/workflow/engine/classes/model/AddonsManager.php b/workflow/engine/classes/model/AddonsManager.php index 8c2e63808..06d16fedb 100644 --- a/workflow/engine/classes/model/AddonsManager.php +++ b/workflow/engine/classes/model/AddonsManager.php @@ -206,7 +206,6 @@ class AddonsManager extends BaseAddonsManager $url = $aux[0]; $var = explode("&", $aux[1]); - $var[] = "pmVersion=" . System::getVersion(); /////// $boundary = "---------------------" . substr(G::encryptOld(rand(0, 32000)), 0, 10); diff --git a/workflow/engine/classes/model/AppAssignSelfServiceValue.php b/workflow/engine/classes/model/AppAssignSelfServiceValue.php index a2c48430c..b2fea9d9b 100644 --- a/workflow/engine/classes/model/AppAssignSelfServiceValue.php +++ b/workflow/engine/classes/model/AppAssignSelfServiceValue.php @@ -5,10 +5,11 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue * Create record * * @param string $applicationUid Unique id of Case - * @param int $delIndex Delegation index - * @param array $arrayData Data + * @param int $delIndex Delegation index + * @param array $arrayData Data * - * return void + * @return void + * @throws Exception */ public function create($applicationUid, $delIndex, array $arrayData, $dataVariable = []) { @@ -59,9 +60,10 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue * Remove record * * @param string $applicationUid Unique id of Case - * @param int $delIndex Delegation index + * @param int $delIndex Delegation index * - * return void + * @return void + * @throws Exception */ public function remove($applicationUid, $delIndex = 0) { @@ -93,8 +95,12 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue /** * Generate data + * This method is used from the command database-generate-self-service-by-value * - * return void + * @return void + * @throws Exception + * + * @deprecated Method deprecated in Release 3.3.0 */ public function generateData() { @@ -133,7 +139,16 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue $dataVariable = (is_array($dataVariable))? $dataVariable : trim($dataVariable); if (!empty($dataVariable)) { - $this->create($row["APP_UID"], $row["DEL_INDEX"], array("PRO_UID" => $row["PRO_UID"], "TAS_UID" => $row["TAS_UID"], "GRP_UID" => serialize($dataVariable))); + //@todo, will be deprecate the command database-generate-self-service-by-value + $this->create( + $row["APP_UID"], + $row["DEL_INDEX"], + [ + "PRO_UID" => $row["PRO_UID"], + "TAS_UID" => $row["TAS_UID"], + "GRP_UID" => serialize($dataVariable) + ] + ); } } } diff --git a/workflow/engine/classes/model/Groupwf.php b/workflow/engine/classes/model/Groupwf.php index eee05771f..989c0fca2 100644 --- a/workflow/engine/classes/model/Groupwf.php +++ b/workflow/engine/classes/model/Groupwf.php @@ -72,47 +72,54 @@ class Groupwf extends BaseGroupwf /** * Creates the Group * - * @param array $aData $oData is not necessary + * @param array $data is not necessary + * * @return void + * + * @throws Exception */ - public function create ($aData) + public function create($data) { //$oData is not necessary - $con = Propel::getConnection( GroupwfPeer::DATABASE_NAME ); + $con = Propel::getConnection(GroupwfPeer::DATABASE_NAME); try { - if (isset( $aData['GRP_UID'] )) { - $this->setGrpUid( $aData['GRP_UID'] ); + if (!empty($data['GRP_UID'])) { + $this->setGrpUid($data['GRP_UID']); } else { - $this->setGrpUid( G::generateUniqueID() ); + $this->setGrpUid(G::generateUniqueID()); + } + if(!empty($data['GRP_ID'])){ + $this->setGrpId($data['GRP_ID']); } - if (isset( $aData['GRP_TITLE'] )) { - $this->setGrpTitle( $aData['GRP_TITLE'] ); + if (!empty($data['GRP_TITLE'])) { + $this->setGrpTitle($data['GRP_TITLE']); } else { - $this->setGrpTitle( 'Default Group Title' ); + $this->setGrpTitle('Default Group Title'); } - if (isset( $aData['GRP_STATUS'] )) { - $this->setGrpStatus( $aData['GRP_STATUS'] ); + if (!empty($aData['GRP_STATUS'])) { + $this->setGrpStatus($data['GRP_STATUS']); } else { - $this->setGrpStatus( 'ACTIVE' ); + $this->setGrpStatus('ACTIVE'); } - if (isset( $aData['GRP_LDAP_DN'] )) { - $this->setGrpLdapDn( $aData['GRP_LDAP_DN'] ); + if (!empty($aData['GRP_LDAP_DN'])) { + $this->setGrpLdapDn($data['GRP_LDAP_DN']); } else { - $this->setGrpLdapDn( '' ); + $this->setGrpLdapDn(''); } if ($this->validate()) { $con->begin(); - if (isset( $aData['GRP_TITLE'] )) { - $this->setGrpTitleContent( $aData['GRP_TITLE'] ); + if (!empty($data['GRP_TITLE'])) { + $this->setGrpTitleContent($data['GRP_TITLE']); } else { - $this->setGrpTitleContent( 'Default Group Title' ); + $this->setGrpTitleContent('Default Group Title'); } $res = $this->save(); $con->commit(); + return $this->getGrpUid(); } else { $msg = ''; @@ -120,7 +127,7 @@ class Groupwf extends BaseGroupwf $msg .= $objValidationFailure->getMessage() . "
"; } - throw (new PropelException( 'The row cannot be created!', new PropelException( $msg ) )); + throw (new PropelException('The row cannot be created!', new PropelException($msg))); } } catch (Exception $e) { diff --git a/workflow/engine/classes/model/ListUnassigned.php b/workflow/engine/classes/model/ListUnassigned.php index 4a065ad61..7306ad7fe 100644 --- a/workflow/engine/classes/model/ListUnassigned.php +++ b/workflow/engine/classes/model/ListUnassigned.php @@ -325,13 +325,14 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface * Get SelfService Value Based * * @param string $userUid + * * @return array $arrayAppAssignSelfServiceValueData * @throws Exception */ public function getSelfServiceCasesByEvaluate($userUid) { try { - $arrayAppAssignSelfServiceValueData = array(); + $arrayAppAssignSelfServiceValueData = []; $criteria = new Criteria("workflow"); @@ -347,8 +348,10 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $criteria->setDistinct(); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_NUMBER); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_ID); $criteria->addJoin(AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValueGroupPeer::ID, Criteria::INNER_JOIN); $criteria->add(AppAssignSelfServiceValueGroupPeer::GRP_UID, $userUid, Criteria::EQUAL); $criteria->addOr(AppAssignSelfServiceValueGroupPeer::GRP_UID, $sql, Criteria::CUSTOM); @@ -359,11 +362,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); - $arrayAppAssignSelfServiceValueData[] = array( - "APP_UID" => $row["APP_UID"], + $arrayAppAssignSelfServiceValueData[] = [ + "APP_NUMBER" => $row["APP_NUMBER"], "DEL_INDEX" => $row["DEL_INDEX"], - "TAS_UID" => $row["TAS_UID"] - ); + "TAS_ID" => $row["TAS_ID"] + ]; } return $arrayAppAssignSelfServiceValueData; @@ -389,8 +392,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(TaskPeer::TAS_UID); + $c->addSelectColumn(TaskPeer::TAS_ID); $c->addSelectColumn(TaskPeer::PRO_UID); + //@todo we need to use the PRO_ID for the left join $c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN); + //@todo we need to use the TAS_ID for the left join $c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN); $c->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); $c->add(TaskPeer::TAS_ASSIGN_TYPE, 'SELF_SERVICE'); @@ -407,7 +413,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $row = $rs->getRow(); while (is_array($row)) { - $tasks[] = $row['TAS_UID']; + $tasks[] = $row['TAS_ID']; $rs->next(); $row = $rs->getRow(); } @@ -418,8 +424,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(TaskPeer::TAS_UID); + $c->addSelectColumn(TaskPeer::TAS_ID); $c->addSelectColumn(TaskPeer::PRO_UID); + //@todo we need to use the PRO_ID for the left join $c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN); + //@todo we need to use the TAS_ID for the left join $c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN); $c->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); $c->add(TaskPeer::TAS_ASSIGN_TYPE, 'SELF_SERVICE'); @@ -436,7 +445,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $row = $rs->getRow(); while (is_array($row)) { - $tasks[] = $row['TAS_UID']; + $tasks[] = $row['TAS_ID']; $rs->next(); $row = $rs->getRow(); } @@ -446,8 +455,10 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface /** * Returns the number of cases of a user + * * @param string $userUid * @param array $filters + * * @return int $total */ public function getCountList($userUid, $filters = array()) @@ -463,6 +474,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface * * @param criteria $criteria * @param string $userUid + * * @return criteria $criteria */ public function getCriteriaWhereSelfService($criteria, $userUid) @@ -478,36 +490,36 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface $firstRow = current($aSelfServiceValueBased); $criterionAux = sprintf( "(( - LIST_UNASSIGNED.APP_UID='%s' AND + LIST_UNASSIGNED.APP_NUMBER='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND - LIST_UNASSIGNED.TAS_UID='%s' + LIST_UNASSIGNED.TAS_ID='%s' ) ", - $firstRow["APP_UID"], + $firstRow["APP_NUMBER"], $firstRow["DEL_INDEX"], - $firstRow["TAS_UID"] + $firstRow["TAS_ID"] ); foreach (array_slice($aSelfServiceValueBased, 1) as $value) { $criterionAux .= sprintf( " OR ( - LIST_UNASSIGNED.APP_UID='%s' AND + LIST_UNASSIGNED.APP_NUMBER='%s' AND LIST_UNASSIGNED.DEL_INDEX=%d AND - LIST_UNASSIGNED.TAS_UID='%s' + LIST_UNASSIGNED.TAS_ID='%s' ) ", - $value["APP_UID"], + $value["APP_NUMBER"], $value["DEL_INDEX"], - $value["TAS_UID"] + $value["TAS_ID"] ); } $criterionAux .= ")"; //And Load SelfService $criteria->add( $criteria->getNewCriterion( - ListUnassignedPeer::TAS_UID, + ListUnassignedPeer::TAS_ID, $tasks, Criteria::IN )->addOr( $criteria->getNewCriterion( - ListUnassignedPeer::TAS_UID, + ListUnassignedPeer::TAS_ID, $criterionAux, Criteria::CUSTOM ) @@ -515,7 +527,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface ); } else { //Self Service - $criteria->add(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN); + $criteria->add(ListUnassignedPeer::TAS_ID, $tasks, Criteria::IN); } return $criteria; diff --git a/workflow/engine/classes/model/SubApplication.php b/workflow/engine/classes/model/SubApplication.php index 5043fe883..59466a920 100644 --- a/workflow/engine/classes/model/SubApplication.php +++ b/workflow/engine/classes/model/SubApplication.php @@ -128,5 +128,29 @@ class SubApplication extends BaseSubApplication return !is_null($dataset); } + + /** + * Get information about the subProcess + * + * @param string $appUid + * @param string $status + * + * @return object + */ + public static function getSubProcessInfo($appUid, $status = 'ACTIVE') + { + $criteria = new Criteria('workflow'); + $criteria->add(SubApplicationPeer::APP_UID, $appUid); + $criteria->add(SubApplicationPeer::SA_STATUS, $status); + $criteria->setLimit(1); + $dataSet = SubApplicationPeer::doSelectRS($criteria); + $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $result = []; + if ($dataSet->next()) { + $result = $dataSet->getRow(); + } + + return $result; + } } diff --git a/workflow/engine/classes/model/SubProcess.php b/workflow/engine/classes/model/SubProcess.php index 9010e5ceb..e2de46612 100644 --- a/workflow/engine/classes/model/SubProcess.php +++ b/workflow/engine/classes/model/SubProcess.php @@ -157,5 +157,29 @@ class SubProcess extends BaseSubProcess return SubProcessPeer::doSelectOne($criteria); } + + /** + * This function will be return the configuration in the subProcess + * + * @param string $proUid + * @param string $tasUid + * + * @return array + */ + public static function getSubProcessConfiguration($proUid, $tasUid) + { + $criteria = new Criteria('workflow'); + $criteria->add(SubProcessPeer::PRO_PARENT, $proUid); + $criteria->add(SubProcessPeer::TAS_PARENT, $tasUid); + $criteria->setLimit(1); + $dataSet = SubProcessPeer::doSelectRS($criteria); + $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $result = []; + if ($dataSet->next()) { + $result = $dataSet->getRow(); + } + + return $result; + } } diff --git a/workflow/engine/classes/model/map/AppAssignSelfServiceValueMapBuilder.php b/workflow/engine/classes/model/map/AppAssignSelfServiceValueMapBuilder.php index e5eb302ad..e38cbaa37 100644 --- a/workflow/engine/classes/model/map/AppAssignSelfServiceValueMapBuilder.php +++ b/workflow/engine/classes/model/map/AppAssignSelfServiceValueMapBuilder.php @@ -69,12 +69,16 @@ class AppAssignSelfServiceValueMapBuilder $tMap->addColumn('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32); + $tMap->addColumn('APP_NUMBER', 'AppNumber', 'int', CreoleTypes::INTEGER, false, null); + $tMap->addColumn('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null); $tMap->addColumn('PRO_UID', 'ProUid', 'string', CreoleTypes::VARCHAR, true, 32); $tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32); + $tMap->addColumn('TAS_ID', 'TasId', 'int', CreoleTypes::INTEGER, false, null); + $tMap->addColumn('GRP_UID', 'GrpUid', 'string', CreoleTypes::LONGVARCHAR, true, null); } // doBuild() diff --git a/workflow/engine/classes/model/om/BaseAddonsManager.php b/workflow/engine/classes/model/om/BaseAddonsManager.php index d24bda7d5..90b606b0d 100644 --- a/workflow/engine/classes/model/om/BaseAddonsManager.php +++ b/workflow/engine/classes/model/om/BaseAddonsManager.php @@ -67,7 +67,7 @@ abstract class BaseAddonsManager extends BaseObject implements Persistent * The value for the addon_state field. * @var string */ - protected $addon_state; + protected $addon_state = ''; /** * The value for the addon_state_changed field. @@ -536,7 +536,7 @@ abstract class BaseAddonsManager extends BaseObject implements Persistent $v = (string) $v; } - if ($this->addon_state !== $v) { + if ($this->addon_state !== $v || $v === '') { $this->addon_state = $v; $this->modifiedColumns[] = AddonsManagerPeer::ADDON_STATE; } diff --git a/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValue.php b/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValue.php index 963b56564..921c67ddb 100644 --- a/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValue.php +++ b/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValue.php @@ -39,6 +39,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi */ protected $app_uid; + /** + * The value for the app_number field. + * @var int + */ + protected $app_number = 0; + /** * The value for the del_index field. * @var int @@ -57,6 +63,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi */ protected $tas_uid; + /** + * The value for the tas_id field. + * @var int + */ + protected $tas_id = 0; + /** * The value for the grp_uid field. * @var string @@ -99,6 +111,17 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi return $this->app_uid; } + /** + * Get the [app_number] column value. + * + * @return int + */ + public function getAppNumber() + { + + return $this->app_number; + } + /** * Get the [del_index] column value. * @@ -132,6 +155,17 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi return $this->tas_uid; } + /** + * Get the [tas_id] column value. + * + * @return int + */ + public function getTasId() + { + + return $this->tas_id; + } + /** * Get the [grp_uid] column value. * @@ -187,6 +221,28 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi } // setAppUid() + /** + * Set the value of [app_number] column. + * + * @param int $v new value + * @return void + */ + public function setAppNumber($v) + { + + // Since the native PHP type for this column is integer, + // we will cast the input value to an int (if it is not). + if ($v !== null && !is_int($v) && is_numeric($v)) { + $v = (int) $v; + } + + if ($this->app_number !== $v || $v === 0) { + $this->app_number = $v; + $this->modifiedColumns[] = AppAssignSelfServiceValuePeer::APP_NUMBER; + } + + } // setAppNumber() + /** * Set the value of [del_index] column. * @@ -253,6 +309,28 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi } // setTasUid() + /** + * Set the value of [tas_id] column. + * + * @param int $v new value + * @return void + */ + public function setTasId($v) + { + + // Since the native PHP type for this column is integer, + // we will cast the input value to an int (if it is not). + if ($v !== null && !is_int($v) && is_numeric($v)) { + $v = (int) $v; + } + + if ($this->tas_id !== $v || $v === 0) { + $this->tas_id = $v; + $this->modifiedColumns[] = AppAssignSelfServiceValuePeer::TAS_ID; + } + + } // setTasId() + /** * Set the value of [grp_uid] column. * @@ -296,20 +374,24 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $this->app_uid = $rs->getString($startcol + 1); - $this->del_index = $rs->getInt($startcol + 2); + $this->app_number = $rs->getInt($startcol + 2); - $this->pro_uid = $rs->getString($startcol + 3); + $this->del_index = $rs->getInt($startcol + 3); - $this->tas_uid = $rs->getString($startcol + 4); + $this->pro_uid = $rs->getString($startcol + 4); - $this->grp_uid = $rs->getString($startcol + 5); + $this->tas_uid = $rs->getString($startcol + 5); + + $this->tas_id = $rs->getInt($startcol + 6); + + $this->grp_uid = $rs->getString($startcol + 7); $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 6; // 6 = AppAssignSelfServiceValuePeer::NUM_COLUMNS - AppAssignSelfServiceValuePeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 8; // 8 = AppAssignSelfServiceValuePeer::NUM_COLUMNS - AppAssignSelfServiceValuePeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating AppAssignSelfServiceValue object", $e); @@ -522,15 +604,21 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi return $this->getAppUid(); break; case 2: - return $this->getDelIndex(); + return $this->getAppNumber(); break; case 3: - return $this->getProUid(); + return $this->getDelIndex(); break; case 4: - return $this->getTasUid(); + return $this->getProUid(); break; case 5: + return $this->getTasUid(); + break; + case 6: + return $this->getTasId(); + break; + case 7: return $this->getGrpUid(); break; default: @@ -555,10 +643,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $result = array( $keys[0] => $this->getId(), $keys[1] => $this->getAppUid(), - $keys[2] => $this->getDelIndex(), - $keys[3] => $this->getProUid(), - $keys[4] => $this->getTasUid(), - $keys[5] => $this->getGrpUid(), + $keys[2] => $this->getAppNumber(), + $keys[3] => $this->getDelIndex(), + $keys[4] => $this->getProUid(), + $keys[5] => $this->getTasUid(), + $keys[6] => $this->getTasId(), + $keys[7] => $this->getGrpUid(), ); return $result; } @@ -597,15 +687,21 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $this->setAppUid($value); break; case 2: - $this->setDelIndex($value); + $this->setAppNumber($value); break; case 3: - $this->setProUid($value); + $this->setDelIndex($value); break; case 4: - $this->setTasUid($value); + $this->setProUid($value); break; case 5: + $this->setTasUid($value); + break; + case 6: + $this->setTasId($value); + break; + case 7: $this->setGrpUid($value); break; } // switch() @@ -640,19 +736,27 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi } if (array_key_exists($keys[2], $arr)) { - $this->setDelIndex($arr[$keys[2]]); + $this->setAppNumber($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { - $this->setProUid($arr[$keys[3]]); + $this->setDelIndex($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { - $this->setTasUid($arr[$keys[4]]); + $this->setProUid($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { - $this->setGrpUid($arr[$keys[5]]); + $this->setTasUid($arr[$keys[5]]); + } + + if (array_key_exists($keys[6], $arr)) { + $this->setTasId($arr[$keys[6]]); + } + + if (array_key_exists($keys[7], $arr)) { + $this->setGrpUid($arr[$keys[7]]); } } @@ -674,6 +778,10 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $criteria->add(AppAssignSelfServiceValuePeer::APP_UID, $this->app_uid); } + if ($this->isColumnModified(AppAssignSelfServiceValuePeer::APP_NUMBER)) { + $criteria->add(AppAssignSelfServiceValuePeer::APP_NUMBER, $this->app_number); + } + if ($this->isColumnModified(AppAssignSelfServiceValuePeer::DEL_INDEX)) { $criteria->add(AppAssignSelfServiceValuePeer::DEL_INDEX, $this->del_index); } @@ -686,6 +794,10 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $criteria->add(AppAssignSelfServiceValuePeer::TAS_UID, $this->tas_uid); } + if ($this->isColumnModified(AppAssignSelfServiceValuePeer::TAS_ID)) { + $criteria->add(AppAssignSelfServiceValuePeer::TAS_ID, $this->tas_id); + } + if ($this->isColumnModified(AppAssignSelfServiceValuePeer::GRP_UID)) { $criteria->add(AppAssignSelfServiceValuePeer::GRP_UID, $this->grp_uid); } @@ -746,12 +858,16 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi $copyObj->setAppUid($this->app_uid); + $copyObj->setAppNumber($this->app_number); + $copyObj->setDelIndex($this->del_index); $copyObj->setProUid($this->pro_uid); $copyObj->setTasUid($this->tas_uid); + $copyObj->setTasId($this->tas_id); + $copyObj->setGrpUid($this->grp_uid); diff --git a/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValuePeer.php b/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValuePeer.php index 2019d8348..5d319a0a8 100644 --- a/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValuePeer.php +++ b/workflow/engine/classes/model/om/BaseAppAssignSelfServiceValuePeer.php @@ -25,7 +25,7 @@ abstract class BaseAppAssignSelfServiceValuePeer const CLASS_DEFAULT = 'classes.model.AppAssignSelfServiceValue'; /** The total number of columns. */ - const NUM_COLUMNS = 6; + const NUM_COLUMNS = 8; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -37,6 +37,9 @@ abstract class BaseAppAssignSelfServiceValuePeer /** the column name for the APP_UID field */ const APP_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.APP_UID'; + /** the column name for the APP_NUMBER field */ + const APP_NUMBER = 'APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER'; + /** the column name for the DEL_INDEX field */ const DEL_INDEX = 'APP_ASSIGN_SELF_SERVICE_VALUE.DEL_INDEX'; @@ -46,6 +49,9 @@ abstract class BaseAppAssignSelfServiceValuePeer /** the column name for the TAS_UID field */ const TAS_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.TAS_UID'; + /** the column name for the TAS_ID field */ + const TAS_ID = 'APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID'; + /** the column name for the GRP_UID field */ const GRP_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.GRP_UID'; @@ -60,10 +66,10 @@ abstract class BaseAppAssignSelfServiceValuePeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('Id', 'AppUid', 'DelIndex', 'ProUid', 'TasUid', 'GrpUid', ), - BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValuePeer::APP_UID, AppAssignSelfServiceValuePeer::DEL_INDEX, AppAssignSelfServiceValuePeer::PRO_UID, AppAssignSelfServiceValuePeer::TAS_UID, AppAssignSelfServiceValuePeer::GRP_UID, ), - BasePeer::TYPE_FIELDNAME => array ('ID', 'APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'GRP_UID', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('Id', 'AppUid', 'AppNumber', 'DelIndex', 'ProUid', 'TasUid', 'TasId', 'GrpUid', ), + BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValuePeer::APP_UID, AppAssignSelfServiceValuePeer::APP_NUMBER, AppAssignSelfServiceValuePeer::DEL_INDEX, AppAssignSelfServiceValuePeer::PRO_UID, AppAssignSelfServiceValuePeer::TAS_UID, AppAssignSelfServiceValuePeer::TAS_ID, AppAssignSelfServiceValuePeer::GRP_UID, ), + BasePeer::TYPE_FIELDNAME => array ('ID', 'APP_UID', 'APP_NUMBER', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'TAS_ID', 'GRP_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, ) ); /** @@ -73,10 +79,10 @@ abstract class BaseAppAssignSelfServiceValuePeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('Id' => 0, 'AppUid' => 1, 'DelIndex' => 2, 'ProUid' => 3, 'TasUid' => 4, 'GrpUid' => 5, ), - BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID => 0, AppAssignSelfServiceValuePeer::APP_UID => 1, AppAssignSelfServiceValuePeer::DEL_INDEX => 2, AppAssignSelfServiceValuePeer::PRO_UID => 3, AppAssignSelfServiceValuePeer::TAS_UID => 4, AppAssignSelfServiceValuePeer::GRP_UID => 5, ), - BasePeer::TYPE_FIELDNAME => array ('ID' => 0, 'APP_UID' => 1, 'DEL_INDEX' => 2, 'PRO_UID' => 3, 'TAS_UID' => 4, 'GRP_UID' => 5, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('Id' => 0, 'AppUid' => 1, 'AppNumber' => 2, 'DelIndex' => 3, 'ProUid' => 4, 'TasUid' => 5, 'TasId' => 6, 'GrpUid' => 7, ), + BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID => 0, AppAssignSelfServiceValuePeer::APP_UID => 1, AppAssignSelfServiceValuePeer::APP_NUMBER => 2, AppAssignSelfServiceValuePeer::DEL_INDEX => 3, AppAssignSelfServiceValuePeer::PRO_UID => 4, AppAssignSelfServiceValuePeer::TAS_UID => 5, AppAssignSelfServiceValuePeer::TAS_ID => 6, AppAssignSelfServiceValuePeer::GRP_UID => 7, ), + BasePeer::TYPE_FIELDNAME => array ('ID' => 0, 'APP_UID' => 1, 'APP_NUMBER' => 2, 'DEL_INDEX' => 3, 'PRO_UID' => 4, 'TAS_UID' => 5, 'TAS_ID' => 6, 'GRP_UID' => 7, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, ) ); /** @@ -181,12 +187,16 @@ abstract class BaseAppAssignSelfServiceValuePeer $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_NUMBER); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::PRO_UID); $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_ID); + $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::GRP_UID); } diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index e862f4eeb..74d40bc8e 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -4230,9 +4230,11 @@ + + diff --git a/workflow/engine/controllers/adminProxy.php b/workflow/engine/controllers/adminProxy.php index b8363992f..6c86f2c06 100644 --- a/workflow/engine/controllers/adminProxy.php +++ b/workflow/engine/controllers/adminProxy.php @@ -1395,6 +1395,7 @@ class adminProxy extends HttpProxyController $oauthClients->setClientDescription('ProcessMaker Web Designer App'); $oauthClients->setClientWebsite('www.processmaker.com'); $oauthClients->setRedirectUri($endpoint); + $oauthClients->setUsrUid('00000000000000000000000000000001'); $oauthClients->save(); if (!empty(config('oauthClients.mobile.clientId'))) { @@ -1405,6 +1406,7 @@ class adminProxy extends HttpProxyController $oauthClients->setClientDescription(config('oauthClients.mobile.clientDescription')); $oauthClients->setClientWebsite(config('oauthClients.mobile.clientWebsite')); $oauthClients->setRedirectUri($endpoint); + $oauthClients->setUsrUid('00000000000000000000000000000001'); $oauthClients->save(); } diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 934aa420f..a0a1b1d13 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -281,13 +281,13 @@ DROP TABLE IF EXISTS `GROUPWF`; CREATE TABLE `GROUPWF` ( `GRP_UID` VARCHAR(32) NOT NULL, - `GRP_ID` INTEGER NOT NULL AUTO_INCREMENT, + `GRP_ID` INTEGER NOT NULL AUTO_INCREMENT, `GRP_TITLE` MEDIUMTEXT NOT NULL, `GRP_STATUS` CHAR(8) default 'ACTIVE' NOT NULL, `GRP_LDAP_DN` VARCHAR(255) default '' NOT NULL, `GRP_UX` VARCHAR(128) default 'NORMAL', PRIMARY KEY (`GRP_UID`), - UNIQUE KEY `GRP_ID` (`GRP_ID`) + UNIQUE KEY `GRP_ID` (`GRP_ID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- #-- GROUP_USER @@ -2354,9 +2354,11 @@ CREATE TABLE `APP_ASSIGN_SELF_SERVICE_VALUE` ( `ID` INTEGER NOT NULL AUTO_INCREMENT, `APP_UID` VARCHAR(32) NOT NULL, + `APP_NUMBER` INTEGER default 0, `DEL_INDEX` INTEGER default 0 NOT NULL, `PRO_UID` VARCHAR(32) NOT NULL, `TAS_UID` VARCHAR(32) NOT NULL, + `TAS_ID` INTEGER default 0, `GRP_UID` MEDIUMTEXT NOT NULL, PRIMARY KEY (`ID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; @@ -2372,7 +2374,7 @@ CREATE TABLE `APP_ASSIGN_SELF_SERVICE_VALUE_GROUP` `ID` INTEGER default 0 NOT NULL, `GRP_UID` VARCHAR(32) NOT NULL, `ASSIGNEE_ID` INTEGER default 0, - `ASSIGNEE_TYPE` INTEGER default 0 NOT NULL, + `ASSIGNEE_TYPE` INTEGER default 0 NOT NULL, KEY `indexId`(`ID`), KEY `INDEX_ASSIGNEE_ID`(`ASSIGNEE_ID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; diff --git a/workflow/engine/methods/setup/webServicesAjax.php b/workflow/engine/methods/setup/webServicesAjax.php deleted file mode 100644 index a4d0f2802..000000000 --- a/workflow/engine/methods/setup/webServicesAjax.php +++ /dev/null @@ -1,1518 +0,0 @@ -. - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ - -use ProcessMaker\Core\System; - -ini_set( "soap.wsdl_cache_enabled", "0" ); // enabling WSDL cache - -$filter = new InputFilter(); -$_GET = $filter->xssFilterHard($_GET); -//$_SESSION = $filter->xssFilterHard($_SESSION); - -if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_FACTORY' ) != 1) { - G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); - //G::header('location: ../login/login'); - die(); -} - -//G::pr($_SESSION); -$_POST['action'] = get_ajax_value( 'action' ); -if ($_POST['action'] == '') { - $_POST['action'] = (isset( $_GET['action'] )) ? $_GET['action'] : ''; -} - -$_POST = $filter->xssFilterHard($_POST); - -switch ($_POST['action']) { - case 'showForm': - global $G_PUBLISH; - $xmlform = isset( $_POST['wsID'] ) ? 'setup/ws' . $_POST['wsID'] : ''; - if (file_exists( PATH_XMLFORM . $xmlform . '.xml' )) { - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $G_PUBLISH = new Publisher(); - $fields['SESSION_ID'] = isset( $_SESSION['WS_SESSION_ID'] ) ? $_SESSION['WS_SESSION_ID'] : ''; - $fields['ACTION'] = $_POST['wsID']; - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $fields, '../setup/webServicesAjax' ); - G::RenderPage( 'publish', 'raw' ); - } - break; - case 'showDetails': - - $dbc = new DBConnection(); - $ses = new DBSession( $dbc ); - - if (! isset( $_SESSION['END_POINT'] )) { - $aFields['WS_HOST'] = $_SERVER['HTTP_HOST']; - $aFields['WS_WORKSPACE'] = config("system.workspace"); - } else { - if (strpos( $_SESSION['END_POINT'], 'https' ) !== false) { - preg_match( '@^(?:https://)?([^/]+)@i', $_SESSION['END_POINT'], $coincidencias ); - } else { - preg_match( '@^(?:http://)?([^/]+)@i', $_SESSION['END_POINT'], $coincidencias ); - } - $aAux = explode( ':', $coincidencias[1] ); - $aFields['WS_HOST'] = $aAux[0]; - $aFields['WS_PORT'] = (isset( $aAux[1] ) ? $aAux[1] : ''); - $aAux = explode( $aAux[0] . (isset( $aAux[1] ) ? ':' . $aAux[1] : ''), $_SESSION['END_POINT'] ); - $aAux = explode( '/', $aAux[1] ); - $aFields['WS_WORKSPACE'] = substr( $aAux[1], 3 ); - } - - $rows[] = array ('uid' => 'char','name' => 'char','age' => 'integer','balance' => 'float' - ); - $rows[] = array ('uid' => 'http','name' => 'http' - ); - $rows[] = array ('uid' => 'https','name' => 'https' - ); - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['protocol'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - if (! isset( $_SESSION['END_POINT'] )) { - $wsdl = 'http://' . $_SERVER['HTTP_HOST']; - $workspace = config("system.workspace"); - } else { - $wsdl = $_SESSION['END_POINT']; - $workspace = $_SESSION['WS_WORKSPACE']; - } - - $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . config("system.workspace") . '/' . SYS_LANG . '/classic/services/wsdl2'; - - $wsdl = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; - - $wsSessionId = ''; - if (isset( $_SESSION['WS_SESSION_ID'] )) { - $wsSessionId = $_SESSION['WS_SESSION_ID']; - } - - $aFields['WSDL'] = $wsdl; - $aFields['OS'] = $workspace; - $aFields['WSID'] = $wsSessionId; - - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/webServicesDetails', '', $aFields, 'webServicesSetupSave' ); - - G::RenderPage( "publish", "raw" ); - break; - case 'showUploadFilesForm': - global $G_PUBLISH; - $xmlform = 'setup/wsSendFiles'; - if (file_exists( PATH_XMLFORM . $xmlform . '.xml' )) { - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - - $G_PUBLISH = new Publisher(); - $fields['SESSION_ID'] = isset( $_SESSION['WS_SESSION_ID'] ) ? $_SESSION['WS_SESSION_ID'] : ''; - $fields['ACTION'] = 'wsSendFiles'; - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $fields, '../setup/webServicesAjax' ); - G::RenderPage( 'publish', 'blank' ); - } - break; -} -try { - global $G_PUBLISH; - if (isset( $_POST['form']['ACTION'] )) { - $frm = $_POST['form']; - $action = $frm['ACTION']; - if (isset( $_POST["epr"] )) { - $_SESSION['END_POINT'] = $_POST["epr"]; - } - $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . config("system.workspace") . '/' . SYS_LANG . '/classic/services/wsdl2'; - - $endpoint = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; - - $sessionId = isset( $_SESSION['SESSION_ID'] ) ? $_SESSION['SESSION_ID'] : ''; - - //Apply proxy settings - $proxy = array (); - $sysConf = System::getSystemConfiguration(); - if ($sysConf['proxy_host'] != '') { - $proxy['proxy_host'] = $sysConf['proxy_host']; - if ($sysConf['proxy_port'] != '') { - $proxy['proxy_port'] = $sysConf['proxy_port']; - } - if ($sysConf['proxy_user'] != '') { - $proxy['proxy_login'] = $sysConf['proxy_user']; - } - if ($sysConf['proxy_pass'] != '') { - $proxy['proxy_password'] = $sysConf['proxy_pass']; - } - } - - @$client = new SoapClient( $endpoint, $proxy ); - - switch ($action) { - case "Login": - $user = $frm["USER_ID"]; - $pass = $frm["PASSWORD"]; - $params = array ('userid' => $user,'password' => $pass - ); - $result = $client->__SoapCall( 'login', array ($params - ) ); - $_SESSION['WS_SESSION_ID'] = ''; - if ($result->status_code == 0) { - $_SESSION['WS_SESSION_ID'] = $result->message; - } - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message; - $fields['version'] = $result->version; - $fields['time_stamp'] = $result->timestamp; - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "ProcessList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - - $wsResponse = $client->__SoapCall( 'ProcessList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'processes' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char' - ); - - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - } - - $rows[] = array ('guid' => $guid,'name' => $name - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['process'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'process' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrProcessList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "RoleList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - $wsResponse = $client->__SoapCall( 'RoleList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'roles' ); - - $G_PUBLISH = new Publisher(); - - $rows[] = array ('guid' => 'char','name' => 'char' - ); - if (is_array( $result )) { - - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - } - - $rows[] = array ('guid' => $guid,'name' => $name - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['role'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'role' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrRoleList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "GroupList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - $wsResponse = $client->__SoapCall( 'GroupList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'groups' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char' - ); - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - } - - $rows[] = array ('guid' => $guid,'name' => $name - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['group'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'group' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrGroupList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "CaseList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - $wsResponse = $client->__SoapCall( 'CaseList', array ($params - ) ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char','status' => 'char','delIndex' => 'char' - ); - - $result = G::PMWSCompositeResponse( $wsResponse, 'cases' ); - - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'status') { - $status = $val->value; - } - if ($val->key == 'delIndex') { - $delIndex = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'status') { - $status = $val->value; - } - if ($val->key == 'delIndex') { - $delIndex = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - if (isset( $item->status )) { - $status = $item->status; - } - if (isset( $item->delIndex )) { - $delIndex = $item->delIndex; - } - } - $rows[] = array ('guid' => $guid,'name' => $name,'status' => $status,'delIndex' => $delIndex - ); - - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['case'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'case' ); - //$c->addAscendingOrderByColumn ( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrCaseList', $c ); - - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "UnassignedCaseList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - - $wsResponse = $client->__SoapCall( 'UnassignedCaseList', array ($params - ) ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char','delIndex' => 'char' - ); - $result = G::PMWSCompositeResponse( $wsResponse, 'cases' ); - - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'delIndex') { - $delIndex = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'delIndex') { - $delIndex = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - if (isset( $item->delIndex )) { - $delIndex = $item->delIndex; - } - } - $rows[] = array ('guid' => $guid,'name' => $name,'delIndex' => $delIndex - ); - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['case'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'case' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrUnassignedCaseList', $c ); - - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "UserList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - $wsResponse = $client->__SoapCall( 'UserList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'users' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char' - ); - if (is_array( $result )) { - - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - } - - $rows[] = array ('guid' => $guid,'name' => $name - ); - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['user'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'user' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrUserList', $c ); - - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - G::RenderPage( 'publish', 'raw' ); - break; - case "SendMessage": - require_once ('classes/model/Application.php'); - $sessionId = $frm["SESSION_ID"]; - $from = $frm["FROM"]; - $to = $frm["TO_EMAIL"]; - $cc = isset( $frm["CC_MAIL"] ) ? $frm["CC_MAIL"] : ''; - $bcc = isset( $frm["BCC_MAIL"] ) ? $frm["BCC_MAIL"] : ''; - $caseId = $frm["CASE_ID"]; - $subject = $frm["SUBJECT"]; - $message = $frm["MESSAGE"]; - // getting the proUid variable - $oCases = new Application(); - $oCases->load( $caseId ); - $proUid = $oCases->getProUid(); - $caseNumber = $oCases->getAppNumber(); - - // generating the path for the template msj - $templateFile = PATH_DB . config("system.workspace") . PATH_SEP . 'mailTemplates' . PATH_SEP . $proUid . PATH_SEP . 'tempTemplate.hml'; - // generating the file adding the msj variable - $messageBody = "message for case: " . $caseNumber . "
" . $message; - file_put_contents( $templateFile, $messageBody ); - - $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'from' => $from,'to' => $to,'cc' => $cc,'bcc' => $bcc,'subject' => $subject,'template' => 'tempTemplate.hml' - ); - $result = $client->__SoapCall( 'sendMessage', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "SendVariables": - $sessionId = $frm["SESSION_ID"]; - $caseId = $frm["CASE_ID"]; - $variables = Array (); - - $o = new stdClass(); - $o->name = $frm["NAME1"]; - $o->value = $frm["VALUE1"]; - array_push( $variables, $o ); - $o = new stdClass(); - $o->name = $frm["NAME2"]; - $o->value = $frm["VALUE2"]; - array_push( $variables, $o ); - - $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'variables' => $variables - ); - $result = $client->__SoapCall( 'SendVariables', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "DerivateCase": - $sessionId = $frm["SESSION_ID"]; - $caseId = $frm["CASE_ID"]; - $delIndex = $frm["DEL_INDEX"]; - - $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'delIndex' => $delIndex - ); - $result = $client->__SoapCall( 'RouteCase', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "ReassignCase": - $sessionId = $frm["SESSION_ID"]; - $caseId = $frm["CASE_ID"]; - $delIndex = $frm["DEL_INDEX"]; - $userIdSource = $frm['USERIDSOURCE']; - $userIdTarget = $frm['USERIDTARGET']; - - $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'delIndex' => $delIndex,'userIdSource' => $userIdSource,'userIdTarget' => $userIdTarget - ); - $result = $client->__SoapCall( 'reassignCase', array ($params - ) ); - - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "NewCaseImpersonate": - $sessionId = $frm["SESSION_ID"]; - $processId = $frm["PROCESS_ID"]; - $userId = $frm["USER_ID"]; - $variables = Array (); - foreach ($frm['VARIABLES'] as $iRow => $aRow) { - $o = new stdClass(); - $o->name = $aRow['NAME']; - $o->value = $aRow['VALUE']; - array_push( $variables, $o ); - } - $params = array ('sessionId' => $sessionId,'processId' => $processId,'userId' => $userId,'variables' => $variables - ); - $result = $client->__SoapCall( 'NewCaseImpersonate', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "NewCase": - $sessionId = $frm["SESSION_ID"]; - $processId = $frm["PROCESS_ID"]; - $taskId = $frm["TASK_ID"]; - - $variables = Array (); - foreach ($frm['VARIABLES'] as $iRow => $aRow) { - $o = new stdClass(); - $o->name = $aRow['NAME']; - $o->value = $aRow['VALUE']; - array_push( $variables, $o ); - } - $params = array ('sessionId' => $sessionId,'processId' => $processId,'taskId' => $taskId,'variables' => $variables - ); - $result = $client->__SoapCall( 'NewCase', array ($params - ) ); - - $G_PUBLISH = new Publisher(); - - $fields['status_code'] = $result->status_code; - $fields['time_stamp'] = $result->timestamp; - if (isset( $result->caseId )) { - $fields['message'] = "Case ID: " . $result->caseId . "\nCase Number: " . $result->caseNumber . "\n" . $result->message; - } else { - $fields['message'] = ''; - } - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "AssignUserToGroup": - $sessionId = $frm["SESSION_ID"]; - $userId = $frm["USER_ID"]; - $groupId = $frm["GROUP_ID"]; - $params = array ('sessionId' => $sessionId,'userId' => $userId,'groupId' => $groupId - ); - $result = $client->__SoapCall( 'AssignUserToGroup', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "CreateUser": - $sessionId = $frm["SESSION_ID"]; - $userId = $frm["USER_ID"]; - $firstname = $frm["FIRST_NAME"]; - $lastname = $frm["LAST_NAME"]; - $email = $frm["EMAIL"]; - $role = $frm["ROLE"]; - $password = $frm["PASSWORD"]; - - $params = array ('sessionId' => $sessionId,'userId' => $userId,'firstname' => $firstname,'lastname' => $lastname,'email' => $email,'role' => $role,'password' => $password - ); - $result = $client->__SoapCall( 'CreateUser', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "TaskList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - $wsResponse = $client->__SoapCall( 'TaskList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'tasks' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char' - ); - - if (is_array( $result )) { - - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - } - - $rows[] = array ('guid' => $guid,'name' => $name - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['task'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'task' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTaskList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - G::RenderPage( 'publish', 'raw' ); - break; - case "TriggerList": - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId - ); - - $wsResponse = $client->__SoapCall( 'triggerList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'triggers' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char','processId' => 'char' - ); - - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'processId') { - $processId = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'processId') { - $processId = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - if (isset( $item->processId )) { - $processId = $item->processId; - } - } - $rows[] = array ('guid' => $guid,'name' => $name,'processId' => $processId - ); - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - - foreach ($rows as $key => $row) { - $proId = $row['processId']; - if (isset( $_DBArray['process'] ) && is_array( $_DBArray['process'] )) { - foreach ($_DBArray['process'] as $pkey => $prow) { - if ($proId == $prow['guid']) { - $rows[$key]['processId'] = $prow['name']; - } - } - } - } - - $_DBArray['triggers'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'triggers' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTriggerList', $c ); - - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "InputDocumentList": - $caseId = $frm["CASE_ID"]; - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId,'caseId' => $caseId - ); - - $wsResponse = $client->__SoapCall( 'InputDocumentList', array ($params - ) ); - - //g::pr($wsResponse); - $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char','processId' => 'char' - ); - - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'filename') { - $filename = $val->value; - } - if ($val->key == 'docId') { - $docId = $val->value; - } - if ($val->key == 'version') { - $version = $val->value; - } - if ($val->key == 'createDate') { - $createDate = $val->value; - } - if ($val->key == 'createBy') { - $createBy = $val->value; - } - if ($val->key == 'type') { - $type = $val->value; - } - if ($val->key == 'link') { - $link = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'filename') { - $filename = $val->value; - } - if ($val->key == 'docId') { - $docId = $val->value; - } - if ($val->key == 'version') { - $version = $val->value; - } - if ($val->key == 'createDate') { - $createDate = $val->value; - } - if ($val->key == 'createBy') { - $createBy = $val->value; - } - if ($val->key == 'type') { - $type = $val->value; - } - if ($val->key == 'link') { - $link = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->filename )) { - $filename = $item->filename; - } - if (isset( $item->docId )) { - $docId = $item->docId; - } - if (isset( $item->version )) { - $version = $item->version; - } - if (isset( $item->createDate )) { - $createDate = $item->createDate; - } - if (isset( $item->createBy )) { - $createBy = $item->createBy; - } - if (isset( $item->type )) { - $type = $item->type; - } - if (isset( $item->link )) { - $link = $item->link; - } - } - $rows[] = array ('guid' => $guid,'filename' => $filename,'docId' => $docId,'version' => $version,'createDate' => $createDate,'createBy' => $createBy,'type' => $type,'link' => $link - ); - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['inputDocument'] = $rows; - $documentArray = array (); - $documentArray[] = array ('guid' => 'char','filename' => 'char' - ); - if (isset( $_DBArray['inputDocument'] )) { - foreach ($_DBArray['inputDocument'] as $key => $val) { - if ($key != 0 && isset( $val['filename'] )) { - $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] - ); - } - } - } - if (isset( $_DBArray['outputDocument'] )) { - foreach ($_DBArray['outputDocument'] as $key => $val) { - if ($key != 0 && isset( $val['filename'] )) { - $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] - ); - } - } - } - $_DBArray['documents'] = $documentArray; - $_DBArray['WS_TMP_CASE_UID'] = $frm["CASE_ID"]; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'inputDocument' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrInputDocumentList', $c ); - - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - G::RenderPage( 'publish', 'raw' ); - break; - case "InputDocumentProcessList": - $processId = $frm["PROCESS_ID"]; - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId,'processId' => $processId - ); - - $wsResponse = $client->__SoapCall( 'InputDocumentProcessList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char','description' => 'char' - ); - if (is_array( $result )) { - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'description') { - $description = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'description') { - $description = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - if (isset( $item->description )) { - $description = $item->description; - } - } - $rows[] = array ('guid' => $guid,'name' => $name,'description' => $description - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['inputDocuments'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'inputDocuments' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrInputDocumentProcessList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - G::RenderPage( 'publish', 'raw' ); - break; - case "OutputDocumentList": - $caseId = $frm["CASE_ID"]; - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId,'caseId' => $caseId - ); - - $wsResponse = $client->__SoapCall( 'outputDocumentList', array ($params - ) ); - $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); - - $G_PUBLISH = new Publisher(); - $rows = array (); - $rows[] = array ('guid' => 'char','name' => 'char' - ); - if (is_array( $result )) { - - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'filename') { - $filename = $val->value; - } - if ($val->key == 'docId') { - $docId = $val->value; - } - if ($val->key == 'version') { - $version = $val->value; - } - if ($val->key == 'createDate') { - $createDate = $val->value; - } - if ($val->key == 'createBy') { - $createBy = $val->value; - } - if ($val->key == 'type') { - $type = $val->value; - } - if ($val->key == 'link') { - $link = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'filename') { - $filename = $val->value; - } - if ($val->key == 'docId') { - $docId = $val->value; - } - if ($val->key == 'version') { - $version = $val->value; - } - if ($val->key == 'createDate') { - $createDate = $val->value; - } - if ($val->key == 'createBy') { - $createBy = $val->value; - } - if ($val->key == 'type') { - $type = $val->value; - } - if ($val->key == 'link') { - $link = $val->value; - } - } - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->filename )) { - $filename = $item->filename; - } - if (isset( $item->docId )) { - $docId = $item->docId; - } - if (isset( $item->version )) { - $version = $item->version; - } - if (isset( $item->createDate )) { - $createDate = $item->createDate; - } - if (isset( $item->createBy )) { - $createBy = $item->createBy; - } - if (isset( $item->type )) { - $type = $item->type; - } - if (isset( $item->link )) { - $link = $item->link; - } - } - $rows[] = array ('guid' => $guid,'filename' => $filename,'docId' => $docId,'version' => $version,'createDate' => $createDate,'createBy' => $createBy,'type' => $type,'link' => $link - ); - } - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['outputDocument'] = $rows; - $documentArray = array (); - $documentArray[] = array ('guid' => 'char','filename' => 'char' - ); - if (isset( $_DBArray['inputDocument'] )) { - foreach ($_DBArray['inputDocument'] as $key => $val) { - if ($key != 0 && isset( $val['filename'] )) { - $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] - ); - } - } - } - if (isset( $_DBArray['outputDocument'] )) { - foreach ($_DBArray['outputDocument'] as $key => $val) { - if ($key != 0 && isset( $val['filename'] )) { - $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] - ); - } - } - } - $_DBArray['documents'] = $documentArray; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'outputDocument' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrOutputDocumentList', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - //add removeUserFromGroup - case "removeUserFromGroup": - $sessionId = $frm["SESSION_ID"]; - $userId = $frm["USER_ID"]; - $groupId = $frm["GROUP_ID"]; - $params = array ('sessionId' => $sessionId,'userId' => $userId,'groupId' => $groupId - ); - $result = $client->__SoapCall( 'removeUserFromGroup', array ($params - ) ); - $G_PUBLISH = new Publisher(); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - //end add - case "RemoveDocument": - $appDocUid = $frm["APP_DOC_UID"]; - $sessionId = $frm["SESSION_ID"]; - $params = array ('sessionId' => $sessionId,'appDocUid' => $appDocUid - ); - $result = $client->__SoapCall( 'RemoveDocument', array ($params - ) ); - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = $result->timestamp; - - if ($result->status_code == 9) { - $_SESSION['WS_SESSION_ID'] = ''; - } - - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'raw' ); - break; - case "TaskCase": - $sessionId = $frm["SESSION_ID"]; - $caseId = $frm["CASE_ID"]; - - $params = array ('sessionId' => $sessionId,'caseId' => $caseId); - $wsResponse = $client->__SoapCall( 'TaskCase', array ($params) ); - - $result = G::PMWSCompositeResponse( $wsResponse, 'taskCases' ); - - $G_PUBLISH = new Publisher(); - $rows[] = array ('guid' => 'char','name' => 'char', 'delegate' => 'char' ); - - if (is_array( $result )) { - - foreach ($result as $key => $item) { - if (isset( $item->item )) { - foreach ($item->item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - if ($val->key == 'name') { - $name = $val->value; - } - if ($val->key == 'delegate') { - $delegate = $val->value; - } - } - } elseif (is_array( $item )) { - foreach ($item as $index => $val) { - if ($val->key == 'guid') { - $guid = $val->value; - } - } - } - if (isset($val->key) && ($val->key == 'name')) { - $name = $val->value; - } else { - if (isset( $item->guid )) { - $guid = $item->guid; - } - if (isset( $item->name )) { - $name = $item->name; - } - if (isset( $item->delegate )) { - $delegate = $item->delegate; - } - } - - $rows[] = array ('guid' => $guid, 'name' => $name, 'delegate' => $delegate); - } - - global $_DBArray; - $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); - $_DBArray['taskCases'] = $rows; - $_SESSION['_DBArray'] = $_DBArray; - - $c = new Criteria( 'dbarray' ); - $c->setDBArrayTable( 'taskCases' ); - $c->addAscendingOrderByColumn( 'name' ); - $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTaskCase', $c ); - } elseif (is_object( $result )) { - $_SESSION['WS_SESSION_ID'] = ''; - $fields['status_code'] = $result->status_code; - $fields['message'] = $result->message; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - } - - G::RenderPage( 'publish', 'raw' ); - break; - case "wsSendFiles": - if (isset( $_FILES['form'] )) { - foreach ($_FILES['form']['name'] as $sFieldName => $vValue) { - if ($_FILES['form']['error'][$sFieldName] == 0) { - file_put_contents( G::sys_get_temp_dir() . PATH_SEP . $_FILES['form']['name'][$sFieldName], file_get_contents( $_FILES['form']['tmp_name'][$sFieldName] ) ); - $filename = G::sys_get_temp_dir() . PATH_SEP . $_FILES['form']['name'][$sFieldName]; - } - } - } - - // G::pr ( $_SESSION ); - if (! isset( $_POST['form']['INPUT_DOCUMENT'] )) { - $_POST['form']['INPUT_DOCUMENT'] = ''; - } - - if (isset( $_SESSION['_DBArray']['inputDocument'] )) { - foreach ($_SESSION['_DBArray']['inputDocument'] as $inputDocument) { - if ($inputDocument['guid'] == $_POST['form']['INPUT_DOCUMENT']) { - $doc_uid = $inputDocument['docId']; - } - } - } else { - $doc_uid = "default"; - } - if (! isset( $_SESSION['_DBArray']['WS_TMP_CASE_UID'] )) { - $_SESSION['_DBArray']['WS_TMP_CASE_UID'] = ''; - } - $usr_uid = $_SESSION['USER_LOGGED']; - $app_uid = $_SESSION['_DBArray']['WS_TMP_CASE_UID']; - $del_index = 1; - - function sendFile ($FILENAME, $USR_UID, $APP_UID, $DEL_INDEX = 1, $DOC_UID = null, $title = null, $comment = null) - { - $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . config("system.workspace") . '/' . SYS_LANG . '/classic/services/upload'; - $upload = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; - - $DOC_UID = ($DOC_UID != null) ? $DOC_UID : - 1; - $APP_DOC_TYPE = ($DOC_UID == - 1) ? 'ATTACHED' : 'INPUT'; - $title = ($title != null) ? $title : $FILENAME; - $comment = ($comment != null) ? $comment : ''; - - $params = array ('ATTACH_FILE' => "@$FILENAME",'APPLICATION' => $APP_UID,'INDEX' => $DEL_INDEX,'USR_UID' => $USR_UID,'DOC_UID' => $DOC_UID,'APP_DOC_TYPE' => $APP_DOC_TYPE,'TITLE' => $title,'COMMENT' => $comment - ); - - $ch = curl_init(); - curl_setopt( $ch, CURLOPT_URL, $defaultEndpoint ); - //curl_setopt($ch, CURLOPT_VERBOSE, 1); - curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); - curl_setopt( $ch, CURLOPT_POST, 1 ); - curl_setopt( $ch, CURLOPT_POSTFIELDS, $params ); - $response = curl_exec( $ch ); - curl_close( $ch ); - return $response; - } - - $fields['status_code'] = 0; - $fields['time_stamp'] = date( "Y-m-d H:i:s" ); - if ($_POST['form']['UPLOAD_OPTION'] == '1') { - // G::pr($doc_uid); - $fields['message'] = sendFile( $filename, $usr_uid, $app_uid, 1, $doc_uid ); - - } else { - $fields['message'] = sendFile( $filename, $usr_uid, $app_uid ); - } - $G_PUBLISH = new Publisher(); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); - G::RenderPage( 'publish', 'blank' ); - die(); - break; - default: - $post = $filter->xssFilterHard($_POST); - print_r( $post ); - } - } - - - - - - - global $_DBArray; - -} catch (Exception $e) { - $G_PUBLISH = new Publisher(); - $aMessage['MESSAGE'] = $e->getMessage(); - $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage ); - G::RenderPage( 'publish', 'raw' ); -} -