diff --git a/workflow/engine/classes/Applications.php b/workflow/engine/classes/Applications.php index 81c794421..f55dc57c1 100644 --- a/workflow/engine/classes/Applications.php +++ b/workflow/engine/classes/Applications.php @@ -1187,6 +1187,9 @@ class Applications case 'EXTERNAL': $stepTitle = 'unknown ' . $caseStep->getStepUidObj(); $oPluginRegistry = PluginRegistry::loadSingleton(); + if (empty($externalSteps[$caseStep->getStepUidObj()])) { + throw new Exception(G::LoadTranslation('ID_EXTERNAL_STEP_MISSING', SYS_LANG, ['plugin' => $stepTitle])); + } $externalStep = $externalSteps[$caseStep->getStepUidObj()]; $stepItem['id'] = $externalStep->getStepId(); $stepItem['title'] = $externalStep->getStepTitle(); diff --git a/workflow/engine/methods/services/ActionsByEmail.php b/workflow/engine/methods/services/ActionsByEmail.php index 8e3a3f3a6..74df3f6ab 100644 --- a/workflow/engine/methods/services/ActionsByEmail.php +++ b/workflow/engine/methods/services/ActionsByEmail.php @@ -64,6 +64,7 @@ if (isset($_GET['BROWSER_TIME_ZONE_OFFSET'])) { } ChangeLog::getChangeLog() + ->getUsrIdByUsrUid($caseFieldsABE['CURRENT_USER_UID'], true) ->setSourceId(ChangeLog::FromABE); $caseFieldsABE['CURRENT_DYNAFORM'] = ''; diff --git a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php index 69586c4e8..d06640ba5 100644 --- a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php +++ b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php @@ -56,6 +56,7 @@ if (PMLicensedFeatures::getSingleton() $casesFields['USER_UID'] = $casesFields['CURRENT_USER_UID']; ChangeLog::getChangeLog() + ->getUsrIdByUsrUid($casesFields['USER_UID'], true) ->setSourceId(ChangeLog::FromABE); //Update case info diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/ChangeLog.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/ChangeLog.php index 4ac78cad0..61a8478c7 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/ChangeLog.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/ChangeLog.php @@ -262,7 +262,7 @@ class ChangeLog return false; } foreach ($this->permissions as $type => $ids) { - if (array_search($uid, $ids) !== false) { + if (is_array($ids) && array_search($uid, $ids) !== false) { return true; } }