From dceb8b035af4a5a868f91d8c6fd00708b2898ffe Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Mon, 30 Mar 2015 17:04:18 -0400 Subject: [PATCH 1/5] I solved the issue PM-1955 new parameter in sendMessage --- workflow/engine/classes/class.wsBase.php | 12 ++++++++++ workflow/engine/classes/model/EmailServer.php | 22 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index 3818d684f..3609135d0 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -923,6 +923,18 @@ class wsBase $licensedFeatures = & PMLicensedFeatures::getSingleton(); /*----------------------------------********---------------------------------*/ if (!empty($config) && $licensedFeatures->verifyfeature('nKaNTNuT1MzK0RsMEtXTnYzR09ucHF2WGNuS0hRdDBBak42WXJhNVVOOG1INEVoaU1EaTllbjBBeEJNeG9wRVJ6NmxQelhyVTBvdThzPQ==')) { + if(!is_array($config)){ + $emailServer = new EmailServer(); + $criteria = $emailServer->getSelAllColumns(); + $criteria->add(EmailServerPeer::MESS_UID, $config, CRITERIA::EQUAL); + $criteria = EmailServerPeer::doSelectRS($criteria); + $criteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + while ($criteria->next()) { + $row = $criteria->getRow(); + $config = $row; + $config['SMTPSecure'] = $row['SMTPSECURE']; + } + } $aSetup = $config; } else { /*----------------------------------********---------------------------------*/ diff --git a/workflow/engine/classes/model/EmailServer.php b/workflow/engine/classes/model/EmailServer.php index f961d4f1a..8f0a58caf 100644 --- a/workflow/engine/classes/model/EmailServer.php +++ b/workflow/engine/classes/model/EmailServer.php @@ -1,5 +1,27 @@ addSelectColumn( EmailServerPeer::MESS_UID); + $criteria->addSelectColumn( EmailServerPeer::MESS_ENGINE); + $criteria->addSelectColumn( EmailServerPeer::MESS_SERVER); + $criteria->addSelectColumn( EmailServerPeer::MESS_PORT); + $criteria->addSelectColumn( EmailServerPeer::MESS_RAUTH); + $criteria->addSelectColumn( EmailServerPeer::MESS_ACCOUNT); + $criteria->addSelectColumn( EmailServerPeer::MESS_PASSWORD); + $criteria->addSelectColumn( EmailServerPeer::MESS_FROM_MAIL); + $criteria->addSelectColumn( EmailServerPeer::MESS_FROM_NAME); + $criteria->addSelectColumn( EmailServerPeer::SMTPSECURE); + $criteria->addSelectColumn( EmailServerPeer::MESS_TRY_SEND_INMEDIATLY); + $criteria->addSelectColumn( EmailServerPeer::MAIL_TO); + $criteria->addSelectColumn( EmailServerPeer::MESS_DEFAULT); + return $criteria; + } } From 4f6260903d641d1ded44685a7781391d5e00d70a Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Wed, 1 Apr 2015 15:09:33 -0400 Subject: [PATCH 2/5] I removed the validations for array --- workflow/engine/classes/class.pmFunctions.php | 2 +- .../engine/src/ProcessMaker/BusinessModel/TriggerWizard.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index 312e54e0e..7c47a586f 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -831,7 +831,7 @@ function getEmailConfiguration () * @param array | $aAttachment = array() | Attachment | An Optional arrray. An array of files (full paths) to be attached to the email. * @param boolean | $showMessage = true | Show message | Optional parameter. Set to TRUE to show the message in the case's message history. * @param int | $delIndex = 0 | Delegation index of the case | Optional parameter. The delegation index of the current task in the case. - * @param array | $config = array() | Email server configuration | An optional array: An array of parameters to be used in the Email sent (MESS_ENGINE, MESS_SERVER, MESS_PORT, MESS_FROM_MAIL, MESS_RAUTH, MESS_ACCOUNT, MESS_PASSWORD, and SMTPSecure). + * @param string(100) | $config = '' | Email server configuration | An optional array: An array of parameters to be used in the Email sent (MESS_ENGINE, MESS_SERVER, MESS_PORT, MESS_FROM_MAIL, MESS_RAUTH, MESS_ACCOUNT, MESS_PASSWORD, and SMTPSecure) Or String: UID of Email server . * @return int | | result | Result of sending email * */ diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php b/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php index 6299c2078..607d172f9 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/TriggerWizard.php @@ -565,6 +565,11 @@ class TriggerWizard break; case "bool": case "boolean": + $paramValue = 'true'; + if($arrayParamData["input"][$paramName]!=''){ + $paramValue = $arrayParamData["input"][$paramName]; + } + break; case "array": $paramValue = trim($arrayParamData["input"][$paramName]); break; From d72e49c5eeefb1996b51f13155372123ebd91652 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Wed, 1 Apr 2015 16:47:07 -0400 Subject: [PATCH 3/5] PM-1872 "The REST API is not handling versions" SOLVED Issue: The REST API is not handling versions Cause: No se esta verificando la version del API Solution: Se agrego metodo para obtener y validar la version del API --- framework/src/Maveriks/WebApplication.php | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/framework/src/Maveriks/WebApplication.php b/framework/src/Maveriks/WebApplication.php index 27a6fdbc0..e40e62c22 100644 --- a/framework/src/Maveriks/WebApplication.php +++ b/framework/src/Maveriks/WebApplication.php @@ -129,6 +129,14 @@ class WebApplication switch ($type) { case self::SERVICE_API: $request = $this->parseApiRequestUri(); + + if ($request["version"] != $this->getApiVersion()) { + $rest = new \Maveriks\Extension\Restler(); + $rest->setMessage(new RestException(Api::STAT_APP_EXCEPTION, "Invalid API version.")); + + exit(0); + } + $this->loadEnvironment($request["workspace"]); Util\Logger::log("REST API Dispatching url: ".$_SERVER["REQUEST_METHOD"]." ".$request["uri"]); @@ -554,4 +562,23 @@ class WebApplication return true; } + + public function getApiVersion() + { + try { + $arrayConfig = array(); + + //$apiIniFile - Contains file name of api ini configuration + $apiIniFile = $this->workflowDir . "engine" . DS . "src" . DS . "ProcessMaker" . DS . "Services" . DS . "api.ini"; + + if (file_exists($apiIniFile)) { + $arrayConfig = Util\Common::parseIniFile($apiIniFile); + } + + return (isset($arrayConfig["api"]["version"]))? $arrayConfig["api"]["version"] : "1.0"; + } catch (Exception $e) { + throw $e; + } + } } + From 6a8ee6664661189eaa13fcb7a8b27dbff6362929 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Wed, 1 Apr 2015 16:52:52 -0400 Subject: [PATCH 4/5] PM-1872 "The REST API is not handling versions" SOLVED Issue: The REST API is not handling versions Cause: No se esta verificando la version del API Solution: Se agrego metodo para obtener y validar la version del API --- framework/src/Maveriks/WebApplication.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Maveriks/WebApplication.php b/framework/src/Maveriks/WebApplication.php index e40e62c22..058645a21 100644 --- a/framework/src/Maveriks/WebApplication.php +++ b/framework/src/Maveriks/WebApplication.php @@ -576,7 +576,7 @@ class WebApplication } return (isset($arrayConfig["api"]["version"]))? $arrayConfig["api"]["version"] : "1.0"; - } catch (Exception $e) { + } catch (\Exception $e) { throw $e; } } From 2b2d23d2554b65ef6a2d8a2df351cb4c9969b0e9 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Wed, 1 Apr 2015 16:57:11 -0400 Subject: [PATCH 5/5] I solved the issue PM-1994 lists Untitled task --- workflow/engine/classes/class.case.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index c98276444..f1e0b4abf 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -348,7 +348,14 @@ class Cases $rs = TaskPeer::doSelectRS($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); + $countTaskLabel = 1; while ($row = $rs->getRow()) { + if($row['TAS_TITLE'] != ''){ + $taskTitleLabel = $row['TAS_TITLE']; + } else { + $taskTitleLabel = G::LoadTranslation('ID_UNTITLED_TASK').' '.$countTaskLabel; + $countTaskLabel++; + } if ($typeView == 'category') { $taskTitle = TaskPeer::retrieveByPK($row['TAS_UID']); $row['TAS_TITLE'] = $taskTitle->getTasTitle(); @@ -356,7 +363,7 @@ class Cases G::LoadTranslation('ID_PROCESS_NOCATEGORY') : $row['CATEGORY_NAME']; $rows[] = array( 'uid' => $row['TAS_UID'], - 'value' => $row['PRO_TITLE'] . ' (' . $row['TAS_TITLE'] . ')', + 'value' => $row['PRO_TITLE'] . ' (' . $taskTitleLabel . ')', 'pro_uid' => $row['PRO_UID'], 'cat' => $row['PRO_CATEGORY'], 'catname' => $row['CATEGORY_NAME'] @@ -364,7 +371,7 @@ class Cases } else { $rows[] = array( 'uid' => $row['TAS_UID'], - 'value' => $row['PRO_TITLE'] . ' (' . $row['TAS_TITLE'] . ')', + 'value' => $row['PRO_TITLE'] . ' (' . $taskTitleLabel . ')', 'pro_uid' => $row['PRO_UID'] ); }