diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php index 766957119..a7b7636fb 100755 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Variable.php @@ -5,6 +5,8 @@ use \G; class Variable { + public $variableTypes = array('string', 'integer', 'float', 'boolean', 'datetime', 'grid', 'array', 'file'); + /** * Create Variable for a Process * @@ -44,6 +46,7 @@ class Variable throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('$var_name' ))); } if (isset($arrayData["VAR_FIELD_TYPE"])) { + $arrayData["VAR_FIELD_TYPE"] = $this->validateVarFieldType($arrayData["VAR_FIELD_TYPE"]); $variable->setVarFieldType($arrayData["VAR_FIELD_TYPE"]); } else { throw new \Exception(\G::LoadTranslation("ID_CAN_NOT_BE_NULL", array('$var_field_type' ))); @@ -151,6 +154,7 @@ class Variable $variable->setVarName($arrayData["VAR_NAME"]); } if (isset($arrayData["VAR_FIELD_TYPE"])) { + $arrayData["VAR_FIELD_TYPE"] = $this->validateVarFieldType($arrayData["VAR_FIELD_TYPE"]); $variable->setVarFieldType($arrayData["VAR_FIELD_TYPE"]); } if (isset($arrayData["VAR_FIELD_SIZE"])) { @@ -1076,4 +1080,13 @@ class Variable throw $e; } } + + public function validateVarFieldType($type) + { + $vType = strtolower($type); + if(!in_array($vType, $this->variableTypes)) { + throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED")); + } + return $vType; + } }