Merged master into dashboards2

This commit is contained in:
Dante Loayza
2015-06-11 09:33:45 -04:00
28 changed files with 338 additions and 150 deletions

View File

@@ -2736,7 +2736,7 @@ function run_check_plugin_disabled_code($task, $args)
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", PATH_PLUGINS . $pluginName . ".php"), $cs->checkDisabledCode("PATH", PATH_PLUGINS . $pluginName));
if (count($arrayFoundDisabledCode) > 0) {
if (!empty($arrayFoundDisabledCode)) {
$strFoundDisabledCode .= (($strFoundDisabledCode != "")? "\n\n" : "") . "> " . $pluginName;
foreach ($arrayFoundDisabledCode as $key2 => $value2) {

View File

@@ -67,10 +67,12 @@ function displayUploadForm()
$html = "
<div id=\"containerDataForm\">
<form method=\"post\" enctype=\"multipart/form-data\" action=\"uploader.php?" . $_SERVER["QUERY_STRING"] . "&q=upload\" onsubmit=\"return validateForm();\">
<br/>
File:&nbsp;
<input type=\"file\" id=\"File1\" name=\"upload_file\" />&nbsp;(*.html, *.htm)
<br/><br/>
<br/>
<input type=\"submit\" name=\"Upload File\" value=\"Upload File\" style=\"border: 1px solid #1ba385; float: right; margin-top: 30px; margin-right: -4px; font-size: 10px; display: inline-block; text-decoration: none; padding: 8px 24px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; background-color: #1fbc99; color: white;\" />
<input type=\"button\" onclick=\"tinyMCEPopup.close();\"name=\"Cancel\" value=\"Cancel\" style=\"border: 1px solid #e14333; float: right; margin-top: 30px; margin-right: 8px; font-size: 10px; display: inline-block; text-decoration: none; padding: 8px 24px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; background-color: #e4655f; color: white;\" />
</form>
</div>

View File

@@ -80,7 +80,7 @@ class CodeScanner
public function existsDisabledCode()
{
try {
return count($this->arrayDisabledCode) > 0;
return !empty($this->arrayDisabledCode);
} catch (Exception $e) {
throw $e;
}
@@ -174,7 +174,7 @@ class CodeScanner
$arrayAux = $this->checkDisabledCodeInSource($source);
if (count($arrayAux) > 0) {
if (!empty($arrayAux)) {
$arrayFoundCode["source"] = $arrayAux;
}
break;
@@ -202,7 +202,7 @@ class CodeScanner
$arrayAux = $this->checkDisabledCodeInSource($source);
if (count($arrayAux) > 0) {
if (!empty($arrayAux)) {
$arrayFoundCode[$path] = $arrayAux;
}
}

View File

@@ -124,6 +124,14 @@ function run_upgrade($command, $args)
$countWorkspace = 0;
$buildCacheView = array_key_exists("buildACV", $args);
foreach ($workspaces as $index => $workspace) {
if (!defined("SYS_SYS")) {
define("SYS_SYS", $workspace->name);
}
if (!defined("PATH_DATA_SITE")) {
define("PATH_DATA_SITE", PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP);
}
try {
$countWorkspace++;
CLI::logging("Upgrading workspaces ($countWorkspace/$count): " . CLI::info($workspace->name) . "\n");

View File

@@ -324,6 +324,14 @@ function database_upgrade($command, $args) {
$workspaces = get_workspaces_from_args($args);
$checkOnly = (strcmp($command, "check") == 0);
foreach ($workspaces as $workspace) {
if (!defined("SYS_SYS")) {
define("SYS_SYS", $workspace->name);
}
if (!defined("PATH_DATA_SITE")) {
define("PATH_DATA_SITE", PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP);
}
if ($checkOnly)
print_r("Checking database in ".pakeColor::colorize($workspace->name, "INFO")."\n");
else
@@ -595,12 +603,24 @@ function run_check_workspace_disabled_code($args, $opts)
foreach ($arrayWorkspace as $value) {
$workspace = $value;
if (!defined("SYS_SYS")) {
define("SYS_SYS", $workspace->name);
}
if (!defined("PATH_DATA_SITE")) {
define("PATH_DATA_SITE", PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP);
}
if (!$workspace->pmLicensedFeaturesVerifyFeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
throw new Exception("Error: This command cannot be used because your license does not include it.");
}
echo "> Workspace: " . $workspace->name . "\n";
try {
$arrayFoundDisabledCode = $workspace->getDisabledCode();
if (count($arrayFoundDisabledCode) > 0) {
if (!empty($arrayFoundDisabledCode)) {
$strFoundDisabledCode = "";
foreach ($arrayFoundDisabledCode as $value2) {
@@ -630,6 +650,8 @@ function run_check_workspace_disabled_code($args, $opts)
} catch (Exception $e) {
echo "Errors to check disabled code: " . CLI::error($e->getMessage()) . "\n\n";
}
$workspace->close();
}
echo "Done!\n";
@@ -672,4 +694,4 @@ function migrate_new_cases_lists($command, $args) {
}
}
}
/*----------------------------------********---------------------------------*/
/*----------------------------------********---------------------------------*/

View File

@@ -3373,25 +3373,29 @@ class Cases
/*----------------------------------********---------------------------------*/
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$strFoundDisabledCode = "";
/*----------------------------------********---------------------------------*/
foreach ($aTriggers as $aTrigger) {
//Check disabled code
/*----------------------------------********---------------------------------*/
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $aTrigger["TRI_WEBBOT"]);
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
//Check disabled code
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $aTrigger["TRI_WEBBOT"]);
if (count($arrayFoundDisabledCode) > 0) {
$strCodeAndLine = "";
if (!empty($arrayFoundDisabledCode)) {
$strCodeAndLine = "";
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
}
$strFoundDisabledCode .= "<br />- " . $aTrigger["TRI_TITLE"] . ": " . $strCodeAndLine;
continue;
}
$strFoundDisabledCode .= "<br />- " . $aTrigger["TRI_TITLE"] . ": " . $strCodeAndLine;
continue;
}
/*----------------------------------********---------------------------------*/
//Execute
$bExecute = true;
@@ -6745,7 +6749,7 @@ class Cases
$rows[] = $rs->getRow();
}
if ($PRO_UID != null) {
if ($PRO_UID != null) {
//Add supervisor
// Users
$oCriteria = new Criteria('workflow');
@@ -6765,10 +6769,10 @@ class Cases
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$flagSupervisors = false;
if ($oDataset->next()) {
if ($oDataset->next()) {
if (!in_array($USR_UID,$row)) {
$rows[] = $oDataset->getRow();
}
}
$flagSupervisors = true;
}
@@ -6908,7 +6912,7 @@ class Cases
unset($aFields['APP_STATUS']);
unset($aFields['APP_PROC_STATUS']);
unset($aFields['APP_PROC_CODE']);
unset($aFields['APP_PIN']);
unset($aFields['APP_PIN']);
$this->updateCase($aFields['APP_UID'], $aFields);
return true;
}

View File

@@ -146,6 +146,57 @@ class PMLicensedFeatures
"type" => "features",
"url" => "",
"version" => ""
),
7 => array(
"description" => "Enables the code scanner feature.",
"enabled" => false,
"id" => "codeScanner",
"latest_version" => "",
"log" => null,
"name" => "codeScanner",
"nick" => "codeScanner",
"progress" => 0,
"publisher" => "Colosa",
"release_type" => "localRegistry",
"status" => "ready",
"store" => "00000000000000000000000000010007",
"type" => "features",
"url" => "",
"version" => ""
),
8 => array(
"description" => "Enables the multiple email configuration feature.",
"enabled" => false,
"id" => "multipleEmailServers",
"latest_version" => "",
"log" => null,
"name" => "multipleEmailServers",
"nick" => "multipleEmailServers",
"progress" => 0,
"publisher" => "Colosa",
"release_type" => "localRegistry",
"status" => "ready",
"store" => "00000000000000000000000000010009",
"type" => "features",
"url" => "",
"version" => ""
),
9 => array(
"description" => "Enables the mobile fields.",
"enabled" => false,
"id" => "mobileFields",
"latest_version" => "",
"log" => null,
"name" => "mobileFields",
"nick" => "mobileFields",
"progress" => 0,
"publisher" => "Colosa",
"release_type" => "localRegistry",
"status" => "ready",
"store" => "00000000000000000000000000010008",
"type" => "features",
"url" => "",
"version" => ""
)
);
@@ -208,7 +259,7 @@ class PMLicensedFeatures
$this->featuresDetails[$value[0]]->enabled = $enable;
return $enable;
}
public function addNewFeatures ($data)
{
$newFeaturesList = $this->newFeatures;
@@ -225,14 +276,14 @@ class PMLicensedFeatures
$rs->next();
$row = $rs->getRow();
$ids = array();
if(sizeof($row)) {
if(sizeof($row)) {
while (is_array($row)) {
$ids[] = $row[0];
$rs->next();
$row = $rs->getRow();
}
}
$toUpdate = array_diff($newFeaturesIds,$ids);
if(sizeof($toUpdate)){
$newFeaturesListAux = array();
foreach($toUpdate as $index => $v) {
@@ -241,10 +292,10 @@ class PMLicensedFeatures
unset($newFeaturesList);
$newFeaturesList = array_values($newFeaturesListAux);
} else {
return $data;
return $data;
}
}
$i = 0;
foreach($newFeaturesList as $k => $newFeature){
$newData[] = array (
@@ -331,8 +382,8 @@ class PMLicensedFeatures
),
'action' => 1,
);
$i++;
$i++;
}
return array_merge($data, $newData);
}

View File

@@ -5085,10 +5085,15 @@ class Processes
$arrayDisabledCode = array();
/*----------------------------------********---------------------------------*/
if (!PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
//Return
return $arrayDisabledCode;
}
//Set variables
/*----------------------------------********---------------------------------*/
$cs = new CodeScanner("DISABLED_CODE");
/*----------------------------------********---------------------------------*/
$delimiter = DBAdapter::getStringDelimiter();
//Processes
@@ -5144,7 +5149,7 @@ class Processes
//Check disabled code
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $triggerWebbot);
if (count($arrayFoundDisabledCode) > 0) {
if (!empty($arrayFoundDisabledCode)) {
if (!isset($arrayDisabledCode[$processUid])) {
$arrayDisabledCode[$processUid] = array(
"processUid" => $processUid,
@@ -5161,6 +5166,7 @@ class Processes
}
}
}
/*----------------------------------********---------------------------------*/
//Return
return $arrayDisabledCode;

View File

@@ -914,28 +914,42 @@ class wsBase
$aAttachment = null,
$showMessage = true,
$delIndex = 0,
$config = array()
$config = array()
) {
try {
if (!class_exists('System')) {
G::LoadClass('system');
}
$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'];
if (!empty($config)) {
$arrayConfigAux = array();
if (is_array($config)) {
if (PMLicensedFeatures::getSingleton()->verifyfeature("nKaNTNuT1MzK0RsMEtXTnYzR09ucHF2WGNuS0hRdDBBak42WXJhNVVOOG1INEVoaU1EaTllbjBBeEJNeG9wRVJ6NmxQelhyVTBvdThzPQ==")) {
$arrayConfigAux = $config;
}
} else {
if (PMLicensedFeatures::getSingleton()->verifyfeature("zIKRGpDM3pjcHFsWGplNDN0dTl5bGN3UTNiOWdQU0E5Q05QTksrU1ladWQ0VT0=")) {
$emailServer = new \ProcessMaker\BusinessModel\EmailServer();
$criteria = $emailServer->getEmailServerCriteria();
$criteria->add(EmailServerPeer::MESS_UID, $config, Criteria::EQUAL);
$rsCriteria = EmailServerPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayConfigAux = $row;
$arrayConfigAux["SMTPSecure"] = $row["SMTPSECURE"];
}
}
}
$aSetup = $config;
$aSetup = (!empty($arrayConfigAux))? $arrayConfigAux : System::getEmailConfiguration();
} else {
/*----------------------------------********---------------------------------*/
$aSetup = System::getEmailConfiguration();

View File

@@ -795,10 +795,11 @@ class workspaceTools
//Insert the first record
$arrayData = array();
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
$emailConfiguration = System::getEmailConfiguration();
if (count($emailConfiguration) > 0) {
if (!empty($emailConfiguration)) {
$arrayData["MESS_ENGINE"] = $emailConfiguration["MESS_ENGINE"];
switch ($emailConfiguration["MESS_ENGINE"]) {
@@ -830,18 +831,16 @@ class workspaceTools
$arrayData = $emailSever->create($arrayData);
} else {
/*----------------------------------********---------------------------------*/
if (true) {
//
} else {
if (!PMLicensedFeatures::getSingleton()->verifyfeature("zIKRGpDM3pjcHFsWGplNDN0dTl5bGN3UTNiOWdQU0E5Q05QTksrU1ladWQ0VT0=")) {
/*----------------------------------********---------------------------------*/
$arrayData["MESS_ENGINE"] = "MAIL";
$arrayData["MESS_SERVER"] = "";
$arrayData["MESS_ACCOUNT"] = "";
$arrayData["MESS_PASSWORD"] = "";
$arrayData["MAIL_TO"] = "";
$arrayData["MESS_DEFAULT"] = 1;
$arrayData["MESS_ENGINE"] = "MAIL";
$arrayData["MESS_SERVER"] = "";
$arrayData["MESS_ACCOUNT"] = "";
$arrayData["MESS_PASSWORD"] = "";
$arrayData["MAIL_TO"] = "";
$arrayData["MESS_DEFAULT"] = 1;
$arrayData = $emailSever->create2($arrayData);
$arrayData = $emailSever->create2($arrayData);
/*----------------------------------********---------------------------------*/
}
/*----------------------------------********---------------------------------*/
@@ -1359,7 +1358,7 @@ class workspaceTools
if ( !$flag && !is_null($flagFunction) ) {
//Replace TYPE by ENGINE
$script = file_get_contents($filename);
$script = preg_replace('/\)TYPE\=|\)\sTYPE\=/', ')ENGINE=', $script);
$script = preg_replace('/\)TYPE\=InnoDB|\)\sTYPE\=InnoDB/', ')ENGINE=InnoDB DEFAULT CHARSET=utf8', $script);
file_put_contents($filename,$script);
$aHost = explode(':',$parameters['dbHost']);
$dbHost = $aHost[0];
@@ -1390,7 +1389,7 @@ class workspaceTools
$script = file_get_contents($filename);
//Replace TYPE by ENGINE
$script = preg_replace('/\)TYPE\=|\)\sTYPE\=/', ')ENGINE=', $script);
$script = preg_replace('/\)TYPE\=InnoDB|\)\sTYPE\=InnoDB/', ')ENGINE=InnoDB DEFAULT CHARSET=utf8', $script);
$lines = explode("\n", $script);
$previous = null;
$insert = false;
@@ -2202,5 +2201,28 @@ class workspaceTools
return true;
}
}
/**
* Verify feature
*
* @param string $featureName Feature name
*
* return bool Return true if is valid the feature, false otherwise
*/
public function pmLicensedFeaturesVerifyFeature($featureName)
{
try {
$this->initPropel(true);
$flag = PMLicensedFeatures::getSingleton()->verifyfeature($featureName);
$this->close();
//Return
return $flag;
} catch (Exception $e) {
throw $e;
}
}
}

View File

@@ -1,27 +1,5 @@
<?php
class EmailServer extends BaseEmailServer
{
/**
* Get all columns by EMAIL_SERVER
*
* @return object criteria
*/
public function getSelAllColumns(){
$criteria = new Criteria("workflow");
$criteria->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;
}
}

View File

@@ -61,12 +61,18 @@ class Designer extends Controller
$consolidated = 0;
$enterprise = 0;
$distribution = 0;
/*----------------------------------********---------------------------------*/
$licensedFeatures = & PMLicensedFeatures::getSingleton();
if ($licensedFeatures->verifyfeature('7TTeDBQeWRoZTZKYjh4eFpYUlRDUUEyVERPU3FxellWank=')) {
$consolidated = 1;
}
$enterprise = 1;
if ($licensedFeatures->verifyfeature("Jb0N3dSZHVhZ1JNOEFZaElqdm15Y050Wmh5S0FEVEI0ckQ=")) {
$distribution = 1;
}
/*----------------------------------********---------------------------------*/
$this->setVar('prj_uid', $proUid);
@@ -76,7 +82,7 @@ class Designer extends Controller
$this->setVar('prj_readonly', $proReadOnly);
$this->setVar('credentials', base64_encode(json_encode($clientToken)));
$this->setVar('isDebugMode', $debug);
$this->setVar('distribution', file_exists(PATH_METHODS . "login/licenseUpdate.php"));
$this->setVar("distribution", $distribution);
if ($debug) {
if (! file_exists(PATH_HTML . "lib-dev/pmUI/build.cache")) {

View File

@@ -904,12 +904,16 @@ try {
if ($aFields['TASK'][$sKey]['NEXT_TASK']['TAS_TIMEUNIT'] == 'HOURS') {
$hoursSelected = "selected = 'selected'";
} else {
if ($aFields['TASK'][$sKey]['NEXT_TASK']['TAS_TIMEUNIT'] == 'MINUTES') {
$minSelected = "selected = 'selected'";
}
$daysSelected = "selected = 'selected'";
}
$sAux = '<select name=' . $hiddenName . '[NEXT_TASK][TAS_TIMEUNIT] id= ' . $hiddenName . '[NEXT_TASK][TAS_TIMEUNIT] >';
$sAux .= "<option " . $hoursSelected . " value='HOURS'>Hours</option> ";
$sAux .= "<option " . $daysSelected . " value='DAYS'>Days</option> ";
$sAux .= "<option " . $minSelected . " value='MINUTES'>Minutes</option> ";
$sAux .= '</select>';
$aFields['TASK'][$sKey]['NEXT_TASK']['TAS_TIMEUNIT'] = $sAux;

View File

@@ -18,5 +18,9 @@ $headPublisher->addContent("emailServer/emailServer"); //Adding a HTML file
$headPublisher->addExtJsScript("emailServer/emailServer", false); //Adding a JavaScript file
$headPublisher->assign("CONFIG", $arrayConfig);
/*----------------------------------********---------------------------------*/
$headPublisher->assign("EMAILSERVER_LICENSED", (PMLicensedFeatures::getSingleton()->verifyfeature("zIKRGpDM3pjcHFsWGplNDN0dTl5bGN3UTNiOWdQU0E5Q05QTksrU1ladWQ0VT0="))? 1 : 0);
/*----------------------------------********---------------------------------*/
G::RenderPage("publish", "extJs");

View File

@@ -26,33 +26,58 @@ use \ProcessMaker\Importer\XmlImporter;
ini_set("max_execution_time", 0);
if (isset($_FILES["PROCESS_FILENAME"]) &&
pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "pm" &&
$_FILES["PROCESS_FILENAME"]["error"] == 0
/*----------------------------------********---------------------------------*/
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=") &&
isset($_FILES["PROCESS_FILENAME"]) &&
$_FILES["PROCESS_FILENAME"]["error"] == 0 &&
preg_match("/^(?:pm|pmx)$/", pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION))
) {
//Check disabled code
$response = array();
try {
$fh = fopen($_FILES["PROCESS_FILENAME"]["tmp_name"], "rb");
$content = fread($fh, (int)(fread($fh, 9)));
$data = unserialize($content);
fclose($fh);
$arrayTrigger = array();
$projectTitle = "";
if (is_object($data) && isset($data->triggers) && is_array($data->triggers) && count($data->triggers) > 0) {
/*----------------------------------********---------------------------------*/
switch (pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION)) {
case "pm":
$fh = fopen($_FILES["PROCESS_FILENAME"]["tmp_name"], "rb");
$content = fread($fh, (int)(fread($fh, 9)));
$data = unserialize($content);
fclose($fh);
if (is_object($data) && isset($data->triggers) && is_array($data->triggers) && !empty($data->triggers)) {
$arrayTrigger = $data->triggers;
$projectTitle = $data->process["PRO_TITLE"];
}
break;
case "pmx":
$importer = new XmlImporter();
$data = $importer->load($_FILES["PROCESS_FILENAME"]["tmp_name"]);
if (isset($data["tables"]["workflow"]["triggers"]) && is_array($data["tables"]["workflow"]["triggers"]) && !empty($data["tables"]["workflow"]["triggers"])) {
$arrayTrigger = $data["tables"]["workflow"]["triggers"];
$projectTitle = $data["tables"]["bpmn"]["project"][0]["prj_name"];
}
break;
}
if (!empty($arrayTrigger)) {
G::LoadClass("codeScanner");
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$strFoundDisabledCode = "";
foreach ($data->triggers as $value) {
foreach ($arrayTrigger as $value) {
$arrayTriggerData = $value;
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $arrayTriggerData["TRI_WEBBOT"]);
if (count($arrayFoundDisabledCode) > 0) {
if (!empty($arrayFoundDisabledCode)) {
$strCodeAndLine = "";
foreach ($arrayFoundDisabledCode["source"] as $key2 => $value2) {
@@ -66,12 +91,11 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
if ($strFoundDisabledCode != "") {
$response["status"] = "DISABLED-CODE";
$response["success"] = true;
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PROCESS", array($data->process["PRO_TITLE"], "\n" . $strFoundDisabledCode));
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PROCESS", array($projectTitle, "\n" . $strFoundDisabledCode));
echo G::json_encode($response);
exit(0);
}
/*----------------------------------********---------------------------------*/
}
} catch (Exception $e) {
$response["status"] = "ERROR";
@@ -82,6 +106,7 @@ if (isset($_FILES["PROCESS_FILENAME"]) &&
exit(0);
}
}
/*----------------------------------********---------------------------------*/
if (isset($_FILES["PROCESS_FILENAME"]) &&
pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "pmx"
@@ -225,7 +250,7 @@ if ($action == "uploadFileNewProcess") {
//1 -exist process
$result->ExistGroupsInDatabase = ""; //"" -Default
//0 -Dont exist process
//1 -exist process
//1 -exist process
$optionGroupExistInDatabase = isset( $_REQUEST["optionGroupExistInDatabase"] ) ? $_REQUEST["optionGroupExistInDatabase"] : null;
//!Upload file
@@ -254,8 +279,8 @@ if ($action == "uploadFileNewProcess") {
//if file is a .pm file continues normally the importing
if ($processFileType == "pm") {
$oData = $oProcess->getProcessData( $path . $filename );
}
}
$importer->throwExceptionIfExistsReservedWordsSql($oData);
//!Upload file
@@ -441,5 +466,5 @@ if ($action == "uploadFileNewProcessExist") {
}
echo G::json_encode( $result );
exit();
exit(0);

View File

@@ -52,25 +52,27 @@ if ($handle = opendir( PATH_PLUGINS )) {
if (is_file(PATH_PLUGINS . $pluginName . ".php") && is_dir(PATH_PLUGINS . $pluginName)) {
/*----------------------------------********---------------------------------*/
//Check disabled code
G::LoadClass("codeScanner");
/*----------------------------------********---------------------------------*/
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
//Check disabled code
G::LoadClass("codeScanner");
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
/*----------------------------------********---------------------------------*/
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", PATH_PLUGINS . $pluginName . ".php"), $cs->checkDisabledCode("PATH", PATH_PLUGINS . $pluginName));
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
if (count($arrayFoundDisabledCode) > 0) {
$response = array();
$response["status"] = "DISABLED-CODE";
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PLUGIN");
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
echo G::json_encode($response);
exit(0);
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", PATH_PLUGINS . $pluginName . ".php"), $cs->checkDisabledCode("PATH", PATH_PLUGINS . $pluginName));
if (!empty($arrayFoundDisabledCode)) {
$response = array();
$response["status"] = "DISABLED-CODE";
$response["message"] = G::LoadTranslation("ID_DISABLED_CODE_PLUGIN");
echo G::json_encode($response);
exit(0);
}
}
/*----------------------------------********---------------------------------*/
//print "change to ENABLED";
require_once($path);
$details = $oPluginRegistry->getPluginDetails($pluginFile);

View File

@@ -238,20 +238,24 @@ try {
unset( $oClass );
}
$res = $tar->extract( $path );
/*----------------------------------********---------------------------------*/
//Check disabled code
G::LoadClass("codeScanner");
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=")) {
//Check disabled code
G::LoadClass("codeScanner");
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", $path . $pluginFile), $cs->checkDisabledCode("PATH", $path . $sClassName));
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
if (count($arrayFoundDisabledCode) > 0) {
throw new Exception(G::LoadTranslation("ID_DISABLED_CODE_PLUGIN"));
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$arrayFoundDisabledCode = array_merge($cs->checkDisabledCode("FILE", $path . $pluginFile), $cs->checkDisabledCode("PATH", $path . $sClassName));
if (!empty($arrayFoundDisabledCode)) {
throw new Exception(G::LoadTranslation("ID_DISABLED_CODE_PLUGIN"));
}
}
/*----------------------------------********---------------------------------*/
//Check if is enterprise plugin
$sContent = file_get_contents( $path . $pluginFile );
$chain = preg_quote( 'extends enterprisePlugin' );

View File

@@ -67,9 +67,7 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
echo $flag;
} else {
G::LoadClass("processMap");
/*----------------------------------********---------------------------------*/
G::LoadClass("codeScanner");
/*----------------------------------********---------------------------------*/
$response = array();
try {
@@ -82,15 +80,20 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
$value = $_POST;
}
if (isset($value["TRI_WEBBOT"])) {
/*----------------------------------********---------------------------------*/
/*----------------------------------********---------------------------------*/
if (PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=") &&
isset($value["TRI_WEBBOT"])
) {
//Check disabled code
G::LoadClass("codeScanner");
$arraySystemConfiguration = System::getSystemConfiguration(PATH_CONFIG . "env.ini");
$cs = new CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $value["TRI_WEBBOT"]);
if (count($arrayFoundDisabledCode) > 0) {
if (!empty($arrayFoundDisabledCode)) {
$strCodeAndLine = "";
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
@@ -99,8 +102,9 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
throw new Exception(G::LoadTranslation("ID_DISABLED_CODE_TRIGGER", array($strCodeAndLine)));
}
/*----------------------------------********---------------------------------*/
}
/*----------------------------------********---------------------------------*/
$swCreate = true;
if ($value['TRI_UID'] != '') {
$oTrigger->load( $value['TRI_UID'] );
@@ -108,7 +112,7 @@ if (isset( $sfunction ) && $sfunction == 'lookforNameTrigger') {
$oTrigger->create( $value );
$value['TRI_UID'] = $oTrigger->getTriUid();
$swCreate = false;
}
}
$oTrigger->update( $value );
if($swCreate){
//Add Audit Log

View File

@@ -325,7 +325,7 @@ class Task
if (!isset($arrayProperty["TAS_DURATION"])) {
throw (new \Exception("Invalid value specified for 'tas_duration'"));
}
$valuesTimeUnit = array('DAYS','HOURS');
$valuesTimeUnit = array('DAYS','HOURS','MINUTES');
if ((!isset($arrayProperty["TAS_TIMEUNIT"])) ||
(!in_array($arrayProperty["TAS_TIMEUNIT"], $valuesTimeUnit))) {
throw (new \Exception("Invalid value specified for 'tas_timeunit'"));

View File

@@ -181,6 +181,31 @@ class Trigger
}
}
/*----------------------------------********---------------------------------*/
if (\PMLicensedFeatures::getSingleton()->verifyfeature("B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4=") &&
isset($dataTrigger["TRI_WEBBOT"])
) {
//Check disabled code
\G::LoadClass("codeScanner");
$arraySystemConfiguration = \System::getSystemConfiguration(PATH_CONFIG . "env.ini");
$cs = new \CodeScanner((isset($arraySystemConfiguration["enable_blacklist"]) && (int)($arraySystemConfiguration["enable_blacklist"]) == 1)? "DISABLED_CODE" : "");
$arrayFoundDisabledCode = $cs->checkDisabledCode("SOURCE", $dataTrigger["TRI_WEBBOT"]);
if (!empty($arrayFoundDisabledCode)) {
$strCodeAndLine = "";
foreach ($arrayFoundDisabledCode["source"] as $key => $value) {
$strCodeAndLine .= (($strCodeAndLine != "")? ", " : "") . \G::LoadTranslation("ID_DISABLED_CODE_CODE_AND_LINE", array($key, implode(", ", $value)));
}
throw new \Exception(\G::LoadTranslation("ID_DISABLED_CODE_TRIGGER", array($strCodeAndLine)));
}
}
/*----------------------------------********---------------------------------*/
$dataTrigger['PRO_UID'] = $sProcessUID;
$oTrigger = new \Triggers();
if ($create) {

View File

@@ -27,7 +27,7 @@ abstract class Importer
const IMPORT_STAT_INVALID_SOURCE_FILE = 102; //Error, Invalid file type or the file have corrupt data.
const IMPORT_STAT_GROUP_ALREADY_EXISTS = 105; //Error, Group already exists.
public abstract function load();
public abstract function load($filename = null);
/**
* Verify if exists reserved words SQL

View File

@@ -24,9 +24,13 @@ class XmlImporter extends Importer
* )
* @throws \Exception
*/
public function load()
public function load($filename = null)
{
$this->dom->load($this->filename);
if (!is_null($filename) && !file_exists($filename)) {
throw new \Exception(\G::LoadTranslation("ID_INVALID_FILE"));
}
$this->dom->load((is_null($filename))? $this->filename : $filename);
$this->root = $this->dom->documentElement;
// validate version

View File

@@ -40,19 +40,18 @@ emailServer.application = {
/*----------------------------------********---------------------------------*/
if (Ext.getCmp("chkEmailServerDefault").checked) {
/*----------------------------------********---------------------------------*/
/*----------------------------------********---------------------------------*/
var emailDefault = 1;
/*----------------------------------********---------------------------------*/
/*----------------------------------********---------------------------------*/
} else {
var emailDefault = 0;
}
/*----------------------------------********---------------------------------*/
switch (option) {
case "INS":
var typeEmailEngine = Ext.getCmp("cboEmailEngine").getValue();
if (typeEmailEngine == "PHPMAILER") {
var rdoGrpOption = Ext.getCmp("rdoGrpSmtpSecure").getValue();
@@ -301,7 +300,7 @@ emailServer.application = {
emailServerSetMailTo(Ext.getCmp("chkSendTestMail").checked);
Ext.getCmp("txtMailTo").setValue(record.get("MAIL_TO"));
/*----------------------------------********---------------------------------*/
if (parseInt(record.get("MESS_DEFAULT")) == 1) {
/*----------------------------------********---------------------------------*/
@@ -311,7 +310,7 @@ emailServer.application = {
Ext.getCmp("chkEmailServerDefault").setValue(false);
}
/*----------------------------------********---------------------------------*/
winData.setTitle(_("ID_EMAIL_SERVER_EDIT"));
winData.setDisabled(false);
winData.show();
@@ -610,7 +609,7 @@ emailServer.application = {
}
});
var txtAccountFrom = new Ext.form.TextField({
id: "txtAccountFrom",
name: "txtAccountFrom",
@@ -619,7 +618,7 @@ emailServer.application = {
vtype: "emailUrlValidation"
});
var txtPassword = new Ext.form.TextField({
id: "txtPassword",
name: "txtPassword",
@@ -682,14 +681,14 @@ emailServer.application = {
hidden: true
});
var chkEmailServerDefault = new Ext.form.Checkbox({
id: "chkEmailServerDefault",
name: "chkEmailServerDefault",
boxLabel: _("ID_EMAIL_SERVER_THIS_CONFIGURATION_IS_DEFAULT")
});
var btnTest = new Ext.Action({
id: "btnTest",
text: _("ID_TEST"),
@@ -1049,10 +1048,14 @@ emailServer.application = {
var arrayAux1 = [];
/*----------------------------------********---------------------------------*/
arrayAux1.push(btnNew);
arrayAux1.push("-");
if (EMAILSERVER_LICENSED) {
arrayAux1.push(btnNew);
arrayAux1.push("-");
}
/*----------------------------------********---------------------------------*/
arrayAux1.push(btnEdit);
/*----------------------------------********---------------------------------*/
arrayAux1.push(btnDelete);
arrayAux1.push("->");
@@ -1102,6 +1105,7 @@ emailServer.application = {
var arrayAux2 = [];
arrayAux2.push(btnEdit);
/*----------------------------------********---------------------------------*/
arrayAux2.push(btnDelete);
/*----------------------------------********---------------------------------*/

View File

@@ -1154,7 +1154,7 @@ Ext.onReady(function() {
store: addonsStore,
defaultType: "displayfield",
padding: 5,
autoHeight : true,
height: 335,
disabled: !licensed,
columns: [
expander,
@@ -1605,4 +1605,3 @@ Ext.onReady(function() {
addonsFeaturesStore.load();
}
});

View File

@@ -28,7 +28,7 @@
{
oCasesFrame = document.getElementById('frameMain');
oClientWinSize = getClientWindowSize();
height = oClientWinSize.height - 105;
height = oClientWinSize.height - 70 + "px";
oCasesFrame.style.height = height;
}
function getStyle(targetElement,styleProp)

View File

@@ -10,7 +10,7 @@
<en><![CDATA[Task duration]]></en>
</TAS_DURATION>
<TAS_TIMEUNIT type="dropdown" defaultvalue="DAYS" group="1">
<en><![CDATA[Time unit]]><option name="HOURS"><![CDATA[Hours]]></option><option name="DAYS"><![CDATA[Days]]></option></en>
<en><![CDATA[Time unit]]><option name="HOURS"><![CDATA[Hours]]></option><option name="DAYS"><![CDATA[Days]]></option><option name="MINUTES"><![CDATA[Minutes]]></option></en>
</TAS_TIMEUNIT>
<TAS_TYPE_DAY type="dropdown" defaultvalue="1" group="1">
<en><![CDATA[Count days by]]><option name="1"><![CDATA[Work Days]]></option><option name="2"><![CDATA[Calendar Days]]></option></en>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB