diff --git a/gulliver/bin/tasks/pakeGulliver.php b/gulliver/bin/tasks/pakeGulliver.php index ea21f2039..a8959ed15 100755 --- a/gulliver/bin/tasks/pakeGulliver.php +++ b/gulliver/bin/tasks/pakeGulliver.php @@ -63,12 +63,6 @@ pake_task('pack-plugin', 'project_exists'); pake_desc("generate basic CRUD files for an existing class\n args: "); pake_task('propel-build-crud', 'project_exists'); -pake_desc("backup a workspace\n args: [-c|--compress] [|]"); -pake_task('workspace-backup', 'project_exists'); - -pake_desc("restore a previously backed-up workspace\n args: [-o|--overwrite] "); -pake_task('workspace-restore', 'project_exists'); - /*----------------------------------********---------------------------------*/ pake_desc("check standard code\n args: "); pake_task('check-standard-code', 'project_exists' ); @@ -2108,25 +2102,6 @@ function run_workspace_backup($task, $args) { if (!isset($gzipPath)) $tar->_compress = $compress; - /*** WORKFLOW DATABASE BACKUP ***/ - $dbSettings = getDataBaseConfiguration($configuration['datasources']['workflow']['connection']); - backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir); - printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO')); - backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir ); - - /*** RBAC DATABASE BACKUP ***/ - $dbSettings = getDataBaseConfiguration($configuration['datasources']['rbac']['connection']); - backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir); - printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO')); - backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir ); - - /*** RP DATABASE BACKUP ***/ - $dbSettings = getDataBaseConfiguration($configuration['datasources']['rp']['connection']); - backupDB($dbOpt[0], $dbOpt[1], $dbOpt[2], $dbSettings['dbname'], $tmpDir); - printf("Copying folder: %s \n", pakeColor::colorize( $tmpDir, 'INFO')); - backupAddTarFolder( $tar, $tmpDir . $dbSettings['dbname'] . PATH_SEP, $tmpDir ); - - $pathSharedBase = PATH_DATA . 'sites' . PATH_SEP . $workspace . PATH_SEP; printf("copying folder: %s \n", pakeColor::colorize($pathSharedBase, 'INFO')); backupAddTarFolder($tar, $pathSharedBase, PATH_DATA . 'sites'); @@ -2167,17 +2142,6 @@ function run_workspace_backup($task, $args) { } } -function backupDB($host, $user, $passwd, $dbname, $tmpDir){ - $oDbMaintainer = new DataBaseMaintenance($host, $user, $passwd); - //stablishing connetion with host - $oDbMaintainer->connect($dbname); - //set temporal dir. for maintenance for oDbMaintainer object - $oDbMaintainer->setTempDir($tmpDir . $dbname . PATH_SEP); - //create the backup - $oDbMaintainer->backupDataBaseSchema($oDbMaintainer->getTempDir() . "$dbname.sql"); - $oDbMaintainer->backupSqlData(); -} - /** * Parse and get the database parameters from a dns connection * dsn sample mysql://wf_os:w9j14dkf5v0m@localhost:3306/wf_os?encoding=utf8 diff --git a/gulliver/js/codemirror/addon/tern/tern.js b/gulliver/js/codemirror/addon/tern/tern.js index 7f83c4e4c..6f82f104c 100644 --- a/gulliver/js/codemirror/addon/tern/tern.js +++ b/gulliver/js/codemirror/addon/tern/tern.js @@ -614,7 +614,7 @@ send({type: "getFile", err: String(err), text: text, id: data.id}); }); } else if (data.type == "debug") { - console.log(data.message); + //console.log(data.message); } else if (data.id && pending[data.id]) { pending[data.id](data.err, data.body); delete pending[data.id]; diff --git a/gulliver/system/class.dbMaintenance.php b/gulliver/system/class.dbMaintenance.php index 8d9518832..71a005eeb 100755 --- a/gulliver/system/class.dbMaintenance.php +++ b/gulliver/system/class.dbMaintenance.php @@ -308,23 +308,6 @@ class DataBaseMaintenance return true; } - /** - * backupSqlData - * - * @return boolean true or false - */ - function backupSqlData () - { - $aTables = $this->getTablesList(); - foreach ($aTables as $table) { - $fsize = $this->dumpSqlInserts( $table ); - $file = basename( $this->outfile ); - - } - - return true; - } - /** * restoreAllData * @@ -419,67 +402,6 @@ class DataBaseMaintenance $mysqli->close(); } - function lockTables () - { - $aTables = $this->getTablesList(); - if (empty( $aTables )) - return false; - printf( "%-70s", "LOCK TABLES" ); - if (@mysql_query( 'LOCK TABLES ' . implode( ' READ, ', $aTables ) . ' READ; ' )) { - echo " [OK]\n"; - return true; - } else { - echo "[FAILED]\n" . mysql_error() . "\n"; - return false; - } - } - - function unlockTables () - { - printf( "%-70s", "UNLOCK TABLES" ); - if (@mysql_query( "UNLOCK TABLES;" )) { - echo " [OK]\n"; - } else { - echo "[FAILED]\n" . mysql_error() . "\n"; - } - } - - /** - * dumpSqlInserts - * - * @param string $table - * - * @return integer $bytesSaved; - */ - function dumpSqlInserts ($table) - { - - $bytesSaved = 0; - $result = @mysql_query( 'SELECT * FROM `'.$table.'`' ); - - $num_rows = mysql_num_rows( $result ); - $num_fields = mysql_num_fields( $result ); - - $data = ""; - for ($i = 0; $i < $num_rows; $i ++) { - - $row = mysql_fetch_object( $result ); - $data .= "INSERT INTO `$table` VALUES ("; - - for ($x = 0; $x < $num_fields; $x ++) { - $field_name = mysql_field_name( $result, $x ); - - $data .= ($row->$field_name === null) ? 'NULL' : "'" . mysql_real_escape_string( $row->$field_name ) . "'"; - $data .= ($x < ($num_fields - 1)) ? ", " : false; - } - - $data .= ");\n"; - } - - printf( "%-59s%20s", "Dump of table $table", strlen( $data ) . " Bytes Saved\n" ); - return $data; - } - /** * backupDataBaseSchema * @@ -638,23 +560,4 @@ class DataBaseMaintenance $str = preg_replace( "/\#[\w\W]*\\n/", '', $str ); return $str; } -} - -/* -// Sample to use -$oDbMaintainer = new DataBaseMaintenance('localhost', 'root', 'atopml2005'); -$oDbMaintainer->setTempDir('/home/erik/backs/'); -$oDbMaintainer->setDbName('rb_os'); -$oDbMaintainer->connect(); -$oDbMaintainer->backupDataBaseSchema('/home/erik/backs/schema_os.sql'); -$oDbMaintainer->backupSqlData(); -$oDbMaintainer->createDb('neyek12', true); - -$o2 = new DataBaseMaintenance('localhost', 'root', 'atopml2005'); -$o2->setTempDir('/home/erik/backs/'); -$o2->setDbName('neyek12'); -$o2->connect(); - -$o2->restoreFromSql('/home/erik/backs/schema_os.sql'); -$o2->restoreAllData('sql'); -*/ +} \ No newline at end of file diff --git a/gulliver/system/class.g.php b/gulliver/system/class.g.php index 9f6866d77..69301c68f 100644 --- a/gulliver/system/class.g.php +++ b/gulliver/system/class.g.php @@ -5558,90 +5558,62 @@ class G foreach ($allowedTypes as $allowedType) { switch ($allowedType) { case 'xls': - if ($docType[1] == 'vnd.ms-excel' || ($fileExtension == 'xls' && $docType[1] == 'plain')) { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'vnd.ms-excel' || ($fileExtension == 'xls' && $docType[1] == 'plain')); + return $res; break; case 'doc': - if ($docType[1] == 'msword' || ($fileExtension == 'doc' && $docType[1] == 'html')) { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'msword' || ($fileExtension == 'doc' && $docType[1] == 'html')); + return $res; break; case 'ppt': - if ($docType[1] == 'vnd.ms-office') { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'vnd.ms-office'); + return $res; break; case 'docx': - if ($docType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document') { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'vnd.openxmlformats-officedocument.wordprocessingml.document'); + return $res; break; case 'pptx': - if ($docType[1] == 'vnd.openxmlformats-officedocument.presentationml.presentation') { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'vnd.openxmlformats-officedocument.presentationml.presentation'); + return $res; break; case 'xlsx': - if ($docType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet') { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + return $res; break; case 'exe': - if ($docType[1] == 'x-msdownload' || $docType[1] == 'x-dosexec') { - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'x-msdownload' || $docType[1] == 'x-dosexec'); + return $res; break; case 'wmv': - if($docType[1] == 'x-ms-asf' || $docType[1] == 'x-ms-wmv'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'x-ms-asf' || $docType[1] == 'x-ms-wmv'); + return $res; break; case 'jpg': - if ($docType[1] == 'jpeg'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'jpeg'); + return $res; break; case 'mp3': - if ($docType[1] == 'mpeg'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'mpeg'); + return $res; break; case 'rar': - if ($docType[1] == 'x-rar'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'x-rar'); + return $res; break; case 'txt': case 'pm': - if ($docType[1] == 'plain'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'plain'); + return $res; break; case 'htm': case 'html': - if ($docType[1] == 'html'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'html'); + return $res; break; case 'po': - if ($docType[1] == 'x-po'){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == 'x-po'); + return $res; break; case 'pdf': case 'png': @@ -5649,16 +5621,12 @@ class G case 'gif': case 'zip': case 'mp4': - if ($docType[1] == $allowedType){ - $res->status = true; - return $res; - } + $res->status = ($docType[1] == $allowedType); + return $res; break; default: - if ($validExtension) { - $res->status = true; - return $res; - } + $res->status = ($validExtension); + return $res; break; } } diff --git a/gulliver/thirdparty/creole/drivers/pgsql/metadata/PgSQLTableInfo.php b/gulliver/thirdparty/creole/drivers/pgsql/metadata/PgSQLTableInfo.php index 8694c660b..095cf364d 100755 --- a/gulliver/thirdparty/creole/drivers/pgsql/metadata/PgSQLTableInfo.php +++ b/gulliver/thirdparty/creole/drivers/pgsql/metadata/PgSQLTableInfo.php @@ -99,10 +99,10 @@ class PgSQLTableInfo extends TableInfo { FROM pg_attribute att JOIN pg_type ty ON ty.oid=att.atttypid LEFT OUTER JOIN pg_attrdef def ON adrelid=att.attrelid AND adnum=att.attnum - WHERE att.attrelid = %d AND att.attnum > 0 + WHERE att.attrelid = $1 AND att.attnum > 0 AND att.attisdropped IS FALSE ORDER BY att.attnum"; - $result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid)); + $result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid); if (!$result) { throw new SQLException("Could not list fields for table: " . $this->name, pg_last_error($this->conn->getResource())); @@ -235,9 +235,9 @@ class PgSQLTableInfo extends TableInfo { INNER JOIN pg_type b ON b.oid = CASE WHEN d.typndims > 0 then d.typelem ELSE d.typbasetype END WHERE d.typtype = 'd' - AND d.typname = '%s' + AND d.typname = '$1' ORDER BY d.typname"; - $result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $strDomain)); + $result = $this->executePgQuery($this->conn->getResource(), $query, $strDomain); if (!$result) { throw new SQLException("Query for domain [" . $strDomain . "] failed.", pg_last_error($this->conn->getResource())); @@ -291,11 +291,11 @@ class PgSQLTableInfo extends TableInfo { LEFT JOIN pg_catalog.pg_attribute a2 ON a2.attrelid = ct.conrelid WHERE contype='f' - AND conrelid = %d + AND conrelid = $1 AND a2.attnum = ct.conkey[1] AND a1.attnum = ct.confkey[1] ORDER BY conname"; - $result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid)); + $result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid); if (!$result) { throw new SQLException("Could not list foreign keys for table: " . $this->name, pg_last_error($this->conn->getResource())); } @@ -379,9 +379,9 @@ class PgSQLTableInfo extends TableInfo { indisunique FROM pg_index idx JOIN pg_class cls ON cls.oid=indexrelid - WHERE indrelid = %d AND NOT indisprimary + WHERE indrelid = $1 AND NOT indisprimary ORDER BY cls.relname"; - $result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid)); + $result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid); if (!$result) { @@ -411,9 +411,9 @@ class PgSQLTableInfo extends TableInfo { $query = "SELECT a.attname FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid - WHERE c.oid = '%s' AND a.attnum = %d AND NOT a.attisdropped + WHERE c.oid = '$1' AND a.attnum = $2 AND NOT a.attisdropped ORDER BY a.attnum"; - $result2 = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid, $intColNum)); + $result2 = $this->executePgQuery($this->conn->getResource(), $query, array($this->oid, $intColNum)); if (!$result2) { throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource())); @@ -454,9 +454,9 @@ class PgSQLTableInfo extends TableInfo { indisunique FROM pg_index idx JOIN pg_class cls ON cls.oid=indexrelid - WHERE indrelid = %s AND indisprimary + WHERE indrelid = $1 AND indisprimary ORDER BY cls.relname"; - $result = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid)); + $result = $this->executePgQuery($this->conn->getResource(), $query, $this->oid); if (!$result) { throw new SQLException("Could not list primary keys for table: " . $this->name, pg_last_error($this->conn->getResource())); } @@ -483,9 +483,9 @@ class PgSQLTableInfo extends TableInfo { $query = "SELECT a.attname FROM pg_catalog.pg_class c JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid - WHERE c.oid = '%s' AND a.attnum = %d AND NOT a.attisdropped + WHERE c.oid = '$1' AND a.attnum = $2 AND NOT a.attisdropped ORDER BY a.attnum"; - $result2 = $this->executePgQuery($this->conn->getResource(), sprintf ($filter->preventSqlInjection($query), $this->oid, $intColNum)); + $result2 = $this->executePgQuery($this->conn->getResource(), $query, array($this->oid, $intColNum)); if (!$result2) { throw new SQLException("Could not list indexes keys for table: " . $this->name, pg_last_error($this->conn->getResource())); @@ -500,8 +500,8 @@ class PgSQLTableInfo extends TableInfo { $this->pkLoaded = true; } - function executePgQuery($conn, $query){ - $result = pg_query($conn, $query); + function executePgQuery($conn, $var, $values = array()){ + $result = pg_query_params($conn, $var, $values); return $result; } diff --git a/gulliver/thirdparty/creole/drivers/sqlite/metadata/SQLiteTableInfo.php b/gulliver/thirdparty/creole/drivers/sqlite/metadata/SQLiteTableInfo.php index cd828b3fa..23ce9de5b 100755 --- a/gulliver/thirdparty/creole/drivers/sqlite/metadata/SQLiteTableInfo.php +++ b/gulliver/thirdparty/creole/drivers/sqlite/metadata/SQLiteTableInfo.php @@ -123,8 +123,8 @@ class SQLiteTableInfo extends TableInfo { $this->indexes[$name] = new IndexInfo($name); // get columns for that index - $query = "PRAGMA index_info('".$name."')"; - $res2 = sqlite_query($this->conn->getResource(), $filter->preventSqlInjection($query)); + $var = "PRAGMA index_info('".$name."')"; + $res2 = sqlite_query($this->conn->getResource(), $var); while($row2 = sqlite_fetch_array($res2, SQLITE_ASSOC)) { $colname = $row2['name']; $this->indexes[$name]->addColumn($this->columns[ $colname ]); diff --git a/gulliver/thirdparty/pear/HTTP/WebDAV/Server/Filesystem.php b/gulliver/thirdparty/pear/HTTP/WebDAV/Server/Filesystem.php index 41dbdf521..bc8d5e146 100755 --- a/gulliver/thirdparty/pear/HTTP/WebDAV/Server/Filesystem.php +++ b/gulliver/thirdparty/pear/HTTP/WebDAV/Server/Filesystem.php @@ -617,54 +617,6 @@ return ($new && !$existing_col) ? "201 Created" : "204 No Content"; } - /** - * PROPPATCH method handler - * - * @param array general parameter passing array - * @return bool true on success - */ - function PROPPATCH(&$options) - { - global $prefs, $tab; - - $msg = ""; - - $path = $options["path"]; - - $dir = dirname($path)."/"; - $base = basename($path); - - if (!class_exists('G')) { - $realdocuroot = str_replace( '\\', '/', $_SERVER['DOCUMENT_ROOT'] ); - $docuroot = explode( '/', $realdocuroot ); - array_pop( $docuroot ); - $pathhome = implode( '/', $docuroot ) . '/'; - array_pop( $docuroot ); - $pathTrunk = implode( '/', $docuroot ) . '/'; - require_once($pathTrunk.'gulliver/system/class.g.php'); - } - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - - foreach($options["props"] as $key => $prop) { - if ($prop["ns"] == "DAV:") { - $options["props"][$key]['status'] = "403 Forbidden"; - } else { - if (isset($prop["val"])) { - $query = "REPLACE INTO properties SET path = '%s', name = '%s', ns= '%s', value = '%s'"; - $query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'],$prop['val'])); - error_log($query); - } else { - $query = "DELETE FROM properties WHERE path = '%s' AND name = '%s' AND ns = '%s'"; - $query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'])); - } - mysql_query($query); - } - } - - return ""; - } - /** * LOCK method handler diff --git a/gulliver/thirdparty/pear/Net/FTP.php b/gulliver/thirdparty/pear/Net/FTP.php index 4f8ad4d5c..eae1f6707 100755 --- a/gulliver/thirdparty/pear/Net/FTP.php +++ b/gulliver/thirdparty/pear/Net/FTP.php @@ -1406,7 +1406,7 @@ class Net_FTP extends PEAR * NET_FTP_ERR_REMOTEPATHNODIR, NET_FTP_ERR_LOCALPATHNODIR, * NET_FTP_ERR_CREATELOCALDIR_FAILED */ - function getRecursive($remote_path, $local_path, $overwrite = false, + function getRecursive($remote_path, $local_p, $overwrite = false, $mode = null) { if (!class_exists('G')) { @@ -1426,16 +1426,16 @@ class Net_FTP extends PEAR "' seems not to be a directory.", NET_FTP_ERR_REMOTEPATHNODIR); } - if (!$this->_checkDir($local_path)) { - return $this->raiseError("Given local-path '".$local_path. + if (!$this->_checkDir($local_p)) { + return $this->raiseError("Given local-path '".$local_p. "' seems not to be a directory.", NET_FTP_ERR_LOCALPATHNODIR); } - if (!@is_dir($filter->validatePath($local_path))) { - $res = @mkdir($filter->validatePath($local_path)); + if (!@is_dir($filter->validatePath($local_p))) { + $res = @mkdir($filter->validatePath($local_p)); if (!$res) { - return $this->raiseError("Could not create dir '$local_path'", + return $this->raiseError("Could not create dir '$local_p'", NET_FTP_ERR_CREATELOCALDIR_FAILED); } } @@ -1447,9 +1447,9 @@ class Net_FTP extends PEAR foreach ($dir_list as $dir_entry) { if ($dir_entry['name'] != '.' && $dir_entry['name'] != '..') { $remote_path_new = $remote_path.$dir_entry["name"]."/"; - $local_path_new = $local_path.$dir_entry["name"]."/"; + $local_p_new = $local_p.$dir_entry["name"]."/"; $result = $this->getRecursive($remote_path_new, - $local_path_new, $overwrite, $mode); + $local_p_new, $overwrite, $mode); if ($this->isError($result)) { return $result; } @@ -1462,7 +1462,7 @@ class Net_FTP extends PEAR } foreach ($file_list as $file_entry) { $remote_file = $remote_path.$file_entry["name"]; - $local_file = $local_path.$file_entry["name"]; + $local_file = $local_p.$file_entry["name"]; $result = $this->get($remote_file, $local_file, $overwrite, $mode); if ($this->isError($result)) { return $result; diff --git a/gulliver/thirdparty/pear/Net/FTP/Socket.php b/gulliver/thirdparty/pear/Net/FTP/Socket.php index 0319cb564..bf3026b01 100755 --- a/gulliver/thirdparty/pear/Net/FTP/Socket.php +++ b/gulliver/thirdparty/pear/Net/FTP/Socket.php @@ -672,11 +672,12 @@ function ftp_get(&$control, $local, $remote, $mode, $resume = 0) } if(is_file($filter->validatePath($local))) { - $fp = fopen($filter->validatePath($local), 'w'.$windows[$mode]); + $var = 'w'.$windows[$mode]; + $fp = fopen($filter->validatePath($local), $var); } else { $fp = false; } - + if (!is_resource($fp)) { $fp = null; return false; diff --git a/gulliver/thirdparty/phing/lib/Capsule.php b/gulliver/thirdparty/phing/lib/Capsule.php index 904ea5a02..246664073 100755 --- a/gulliver/thirdparty/phing/lib/Capsule.php +++ b/gulliver/thirdparty/phing/lib/Capsule.php @@ -124,13 +124,13 @@ class Capsule { $path = $this->templatePath . PATH_SEPARATOR . $__old_inc_path; if(strpos($path,":")>0){ - $firstPath = explode(":", $this->templatePath . PATH_SEPARATOR . $__old_inc_path); + $firstPath = explode(":", $path); if (is_dir($firstPath[0])) { - ini_set('include_path', $this->templatePath . PATH_SEPARATOR . $__old_inc_path); + ini_set('include_path', $path); } } else { - if(is_dir($this->templatePath . PATH_SEPARATOR . $__old_inc_path)) { - ini_set('include_path', $this->templatePath . PATH_SEPARATOR . $__old_inc_path); + if(is_dir($path)) { + ini_set('include_path', $path); } } diff --git a/gulliver/thirdparty/tcpdf/tcpdf.php b/gulliver/thirdparty/tcpdf/tcpdf.php index 5e96dd903..43b53cfa1 100644 --- a/gulliver/thirdparty/tcpdf/tcpdf.php +++ b/gulliver/thirdparty/tcpdf/tcpdf.php @@ -18281,7 +18281,7 @@ class TCPDF { * @author Nicola Asuni * @since 4.6.005 (2009-04-24) */ - public function setSignature($signing_cert='', $private_key='', $private_key_password='', $extracerts='', $cert_type=2, $info=array()) { + public function setSignature($signing_cert='', $private_key='', $private_key_p='', $extracerts='', $cert_type=2, $info=array()) { // to create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt // to export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12 // to convert pfx certificate to pem: openssl @@ -18293,14 +18293,14 @@ class TCPDF { $this->signature_data = array(); if (strlen($signing_cert) == 0) { $signing_cert = 'file://'.dirname(__FILE__).'/tcpdf.crt'; - $private_key_password = 'tcpdfdemo'; + $private_key_p = 'tcpdfdemo'; } if (strlen($private_key) == 0) { $private_key = $signing_cert; } $this->signature_data['signcert'] = $signing_cert; $this->signature_data['privkey'] = $private_key; - $this->signature_data['password'] = $private_key_password; + $this->signature_data['password'] = $private_key_p; $this->signature_data['extracerts'] = $extracerts; $this->signature_data['cert_type'] = $cert_type; $this->signature_data['info'] = $info; diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 3b0734817..85c69d260 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -199,25 +199,22 @@ class Derivation $flagAddDelegation = $pmScript->evaluate(); } - //In the 3.0.1.7 version we have a condition for join and the rouCondition maybe is true, 1, etc - $rouCondition = trim($arrayRouteData["ROU_CONDITION"]); - if($rouCondition !== '' && $arrayRouteData["ROU_TYPE"] === 'SEC-JOIN'){ - error_log(G::LoadTranslation( 'ID_WARNING_GATEWAY_CONVERGENT_WITH_CONDITION' ).' '.$flagAddDelegation); - } + if (trim($arrayRouteData['ROU_CONDITION']) == '' && $arrayRouteData['ROU_NEXT_TASK'] != '-1') { + $arrayTaskData = $task->load($arrayRouteData['ROU_NEXT_TASK']); - if ($arrayRouteData["ROU_NEXT_TASK"] != "-1" && $rouCondition === '') { - $arrayTaskData = $task->load($arrayRouteData["ROU_NEXT_TASK"]); - if ($arrayRouteData["ROU_TYPE"] != "SEC-JOIN" && $arrayTaskData["TAS_TYPE"] == "GATEWAYTOGATEWAY") { + if ($arrayRouteData['ROU_TYPE'] != 'SEC-JOIN' && $arrayTaskData['TAS_TYPE'] == 'GATEWAYTOGATEWAY') { $flagAddDelegation = true; } + + if($arrayRouteData['ROU_TYPE'] == 'SEC-JOIN'){ + $aSecJoin[$count]['ROU_PREVIOUS_TASK'] = $arrayRouteData['ROU_NEXT_TASK']; + $aSecJoin[$count]['ROU_PREVIOUS_TYPE'] = 'SEC-JOIN'; + $count++; + } } - //In the 3.0.1.8 version the Secjoin does not have a rouCondition - if($arrayRouteData["ROU_NEXT_TASK"] !== '-1' && $arrayRouteData["ROU_TYPE"] === 'SEC-JOIN'){ - $arrayTaskData = $task->load($arrayRouteData["ROU_NEXT_TASK"]); - $aSecJoin[$count]["ROU_PREVIOUS_TASK"] = $arrayRouteData["ROU_NEXT_TASK"]; - $aSecJoin[$count]["ROU_PREVIOUS_TYPE"] = 'SEC-JOIN'; - $count++; + if ($arrayRouteData['ROU_TYPE'] == 'EVALUATE' && !empty($arrayNextTask)) { + $flagAddDelegation = false; } if ($flagAddDelegation && @@ -1393,7 +1390,7 @@ class Derivation } //end switch if($iNewDelIndex !== 0 && !$sendNotificationsMobile){ - $sendNotificationsMobile = $this->sendNotificationsMobile($appFields, $nextDel, $iNewDelIndex); + $sendNotificationsMobile = $this->sendNotificationsMobile($appFields, $nextDel, $iNewDelIndex); } return $iNewDelIndex; } @@ -1667,4 +1664,3 @@ class Derivation } } } - diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 5501b304d..cf015a66b 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -4169,7 +4169,16 @@ class Processes try { $emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); + $emailServer = new \ProcessMaker\BusinessModel\EmailServer(); + $arrayEmailServerDefault = $emailServer->getEmailServerDefault(); + foreach ($arrayData as $value) { + unset($value['EMAIL_EVENT_FROM']); + + if (!empty($arrayEmailServerDefault)) { + $value['EMAIL_EVENT_FROM'] = $arrayEmailServerDefault['MESS_ACCOUNT']; + } + $emailEventData = $emailEvent->save($processUid, $value); } } catch (Exception $e) { diff --git a/workflow/engine/classes/class.webdav.php b/workflow/engine/classes/class.webdav.php index 3b56c1068..e1d478132 100755 --- a/workflow/engine/classes/class.webdav.php +++ b/workflow/engine/classes/class.webdav.php @@ -886,44 +886,6 @@ class ProcessMakerWebDav extends HTTP_WebDAV_Server return ($new && !$existing_col) ? "201 Created" : "204 No Content"; } - /** - * PROPPATCH method handler - * - * @param array general parameter passing array - * @return bool true on success - */ - public function PROPPATCH(&$options) - { - global $prefs, $tab; - - $msg = ""; - - $path = $options["path"]; - - $dir = dirname($path) . "/"; - $base = basename($path); - - G::LoadSystem('inputfilter'); - $filter = new InputFilter(); - - foreach ($options["props"] as $key => $prop) { - if ($prop["ns"] == "DAV:") { - $options["props"][$key]['status'] = "403 Forbidden"; - } else { - if (isset($prop["val"])) { - $query = "REPLACE INTO properties SET path = '%s', name = '%s', ns= '%s', value = '%s'"; - $query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'],$prop['val'])); - error_log($query); - } else { - $query = "DELETE FROM properties WHERE path = '%s' AND name = '%s' AND ns = '%s'"; - $query = $filter->preventSqlInjection($query, Array($options['path'],$prop['name'],$prop['ns'])); - } - mysql_query($query); - } - } - return ""; - } - /** * LOCK method handler * diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index e2f1800c5..f3e321a4c 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1136,10 +1136,8 @@ class workspaceTools $oDbMaintainer = new DataBaseMaintenance($dbInfo["host"], $dbInfo["user"], $dbInfo["pass"]); CLI::logging("Saving database {$dbInfo["name"]}\n"); $oDbMaintainer->connect($dbInfo["name"]); - $oDbMaintainer->lockTables(); $oDbMaintainer->setTempDir($path . "/"); $oDbMaintainer->backupDataBase($oDbMaintainer->getTempDir() . $dbInfo["name"] . ".sql"); - $oDbMaintainer->unlockTables(); $dbNames[] = $dbInfo; } return $dbNames; diff --git a/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php b/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php index 6eb4cd62f..ce378e8b7 100644 --- a/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php +++ b/workflow/engine/classes/model/map/ElementTaskRelationMapBuilder.php @@ -75,8 +75,6 @@ class ElementTaskRelationMapBuilder $tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32); - $tMap->addColumn('ELEMENT_UID_DEST', 'ElementUidDest', 'string', CreoleTypes::VARCHAR, false, 32); - } // doBuild() } // ElementTaskRelationMapBuilder diff --git a/workflow/engine/classes/model/map/ProcessMapBuilder.php b/workflow/engine/classes/model/map/ProcessMapBuilder.php index 96617805c..2987fc679 100755 --- a/workflow/engine/classes/model/map/ProcessMapBuilder.php +++ b/workflow/engine/classes/model/map/ProcessMapBuilder.php @@ -141,6 +141,8 @@ class ProcessMapBuilder $tMap->addColumn('PRO_ITEE', 'ProItee', 'int', CreoleTypes::INTEGER, true, null); + $tMap->addColumn('PRO_ACTION_DONE', 'ProActionDone', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addValidator('PRO_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'WEEKS|MONTHS|DAYS|HOURS|MINUTES', 'Please select a valid Time Unit.'); $tMap->addValidator('PRO_STATUS', 'validValues', 'propel.validator.ValidValuesValidator', 'ACTIVE|INACTIVE|DISABLED', 'Please select a valid Process Status.'); diff --git a/workflow/engine/classes/model/map/RouteMapBuilder.php b/workflow/engine/classes/model/map/RouteMapBuilder.php index ecb8f2e2f..a257ae0c7 100755 --- a/workflow/engine/classes/model/map/RouteMapBuilder.php +++ b/workflow/engine/classes/model/map/RouteMapBuilder.php @@ -101,8 +101,6 @@ class RouteMapBuilder $tMap->addColumn('GAT_UID', 'GatUid', 'string', CreoleTypes::VARCHAR, true, 32); - $tMap->addColumn('ROU_ELEMENT_ORIGIN', 'RouElementOrigin', 'string', CreoleTypes::VARCHAR, false, 32); - $tMap->addValidator('ROU_UID', 'maxLength', 'propel.validator.MaxLengthValidator', '32', 'Route UID can be no larger than 32 in size'); $tMap->addValidator('ROU_UID', 'required', 'propel.validator.RequiredValidator', '', 'Route UID is required.'); diff --git a/workflow/engine/classes/model/map/TaskMapBuilder.php b/workflow/engine/classes/model/map/TaskMapBuilder.php index 863efc4f2..53f50d5cf 100755 --- a/workflow/engine/classes/model/map/TaskMapBuilder.php +++ b/workflow/engine/classes/model/map/TaskMapBuilder.php @@ -165,7 +165,7 @@ class TaskMapBuilder $tMap->addColumn('TAS_SELFSERVICE_TIMEOUT', 'TasSelfserviceTimeout', 'int', CreoleTypes::INTEGER, false, null); - $tMap->addColumn('TAS_SELFSERVICE_TIME', 'TasSelfserviceTime', 'string', CreoleTypes::VARCHAR, false, 15); + $tMap->addColumn('TAS_SELFSERVICE_TIME', 'TasSelfserviceTime', 'int', CreoleTypes::INTEGER, false, null); $tMap->addColumn('TAS_SELFSERVICE_TIME_UNIT', 'TasSelfserviceTimeUnit', 'string', CreoleTypes::VARCHAR, false, 15); diff --git a/workflow/engine/classes/model/om/BaseElementTaskRelation.php b/workflow/engine/classes/model/om/BaseElementTaskRelation.php index f7714ca68..7cf07f552 100644 --- a/workflow/engine/classes/model/om/BaseElementTaskRelation.php +++ b/workflow/engine/classes/model/om/BaseElementTaskRelation.php @@ -57,12 +57,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent */ protected $tas_uid; - /** - * The value for the element_uid_dest field. - * @var string - */ - protected $element_uid_dest = ''; - /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -132,17 +126,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent return $this->tas_uid; } - /** - * Get the [element_uid_dest] column value. - * - * @return string - */ - public function getElementUidDest() - { - - return $this->element_uid_dest; - } - /** * Set the value of [etr_uid] column. * @@ -253,28 +236,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent } // setTasUid() - /** - * Set the value of [element_uid_dest] column. - * - * @param string $v new value - * @return void - */ - public function setElementUidDest($v) - { - - // Since the native PHP type for this column is string, - // we will cast the input to a string (if it is not). - if ($v !== null && !is_string($v)) { - $v = (string) $v; - } - - if ($this->element_uid_dest !== $v || $v === '') { - $this->element_uid_dest = $v; - $this->modifiedColumns[] = ElementTaskRelationPeer::ELEMENT_UID_DEST; - } - - } // setElementUidDest() - /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -302,14 +263,12 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $this->tas_uid = $rs->getString($startcol + 4); - $this->element_uid_dest = $rs->getString($startcol + 5); - $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 6; // 6 = ElementTaskRelationPeer::NUM_COLUMNS - ElementTaskRelationPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = ElementTaskRelationPeer::NUM_COLUMNS - ElementTaskRelationPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating ElementTaskRelation object", $e); @@ -528,9 +487,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent case 4: return $this->getTasUid(); break; - case 5: - return $this->getElementUidDest(); - break; default: return null; break; @@ -556,7 +512,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $keys[2] => $this->getElementUid(), $keys[3] => $this->getElementType(), $keys[4] => $this->getTasUid(), - $keys[5] => $this->getElementUidDest(), ); return $result; } @@ -603,9 +558,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent case 4: $this->setTasUid($value); break; - case 5: - $this->setElementUidDest($value); - break; } // switch() } @@ -649,10 +601,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $this->setTasUid($arr[$keys[4]]); } - if (array_key_exists($keys[5], $arr)) { - $this->setElementUidDest($arr[$keys[5]]); - } - } /** @@ -684,10 +632,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $criteria->add(ElementTaskRelationPeer::TAS_UID, $this->tas_uid); } - if ($this->isColumnModified(ElementTaskRelationPeer::ELEMENT_UID_DEST)) { - $criteria->add(ElementTaskRelationPeer::ELEMENT_UID_DEST, $this->element_uid_dest); - } - return $criteria; } @@ -750,8 +694,6 @@ abstract class BaseElementTaskRelation extends BaseObject implements Persistent $copyObj->setTasUid($this->tas_uid); - $copyObj->setElementUidDest($this->element_uid_dest); - $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php b/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php index 5f110b937..ab7c9a3ff 100644 --- a/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php +++ b/workflow/engine/classes/model/om/BaseElementTaskRelationPeer.php @@ -25,7 +25,7 @@ abstract class BaseElementTaskRelationPeer const CLASS_DEFAULT = 'classes.model.ElementTaskRelation'; /** The total number of columns. */ - const NUM_COLUMNS = 6; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -46,9 +46,6 @@ abstract class BaseElementTaskRelationPeer /** the column name for the TAS_UID field */ const TAS_UID = 'ELEMENT_TASK_RELATION.TAS_UID'; - /** the column name for the ELEMENT_UID_DEST field */ - const ELEMENT_UID_DEST = 'ELEMENT_TASK_RELATION.ELEMENT_UID_DEST'; - /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -60,10 +57,10 @@ abstract class BaseElementTaskRelationPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('EtrUid', 'PrjUid', 'ElementUid', 'ElementType', 'TasUid', 'ElementUidDest', ), - BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID, ElementTaskRelationPeer::PRJ_UID, ElementTaskRelationPeer::ELEMENT_UID, ElementTaskRelationPeer::ELEMENT_TYPE, ElementTaskRelationPeer::TAS_UID, ElementTaskRelationPeer::ELEMENT_UID_DEST, ), - BasePeer::TYPE_FIELDNAME => array ('ETR_UID', 'PRJ_UID', 'ELEMENT_UID', 'ELEMENT_TYPE', 'TAS_UID', 'ELEMENT_UID_DEST', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('EtrUid', 'PrjUid', 'ElementUid', 'ElementType', 'TasUid', ), + BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID, ElementTaskRelationPeer::PRJ_UID, ElementTaskRelationPeer::ELEMENT_UID, ElementTaskRelationPeer::ELEMENT_TYPE, ElementTaskRelationPeer::TAS_UID, ), + BasePeer::TYPE_FIELDNAME => array ('ETR_UID', 'PRJ_UID', 'ELEMENT_UID', 'ELEMENT_TYPE', 'TAS_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -73,10 +70,10 @@ abstract class BaseElementTaskRelationPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('EtrUid' => 0, 'PrjUid' => 1, 'ElementUid' => 2, 'ElementType' => 3, 'TasUid' => 4, 'ElementUidDest' => 5, ), - BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID => 0, ElementTaskRelationPeer::PRJ_UID => 1, ElementTaskRelationPeer::ELEMENT_UID => 2, ElementTaskRelationPeer::ELEMENT_TYPE => 3, ElementTaskRelationPeer::TAS_UID => 4, ElementTaskRelationPeer::ELEMENT_UID_DEST => 5, ), - BasePeer::TYPE_FIELDNAME => array ('ETR_UID' => 0, 'PRJ_UID' => 1, 'ELEMENT_UID' => 2, 'ELEMENT_TYPE' => 3, 'TAS_UID' => 4, 'ELEMENT_UID_DEST' => 5, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, ) + BasePeer::TYPE_PHPNAME => array ('EtrUid' => 0, 'PrjUid' => 1, 'ElementUid' => 2, 'ElementType' => 3, 'TasUid' => 4, ), + BasePeer::TYPE_COLNAME => array (ElementTaskRelationPeer::ETR_UID => 0, ElementTaskRelationPeer::PRJ_UID => 1, ElementTaskRelationPeer::ELEMENT_UID => 2, ElementTaskRelationPeer::ELEMENT_TYPE => 3, ElementTaskRelationPeer::TAS_UID => 4, ), + BasePeer::TYPE_FIELDNAME => array ('ETR_UID' => 0, 'PRJ_UID' => 1, 'ELEMENT_UID' => 2, 'ELEMENT_TYPE' => 3, 'TAS_UID' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -187,8 +184,6 @@ abstract class BaseElementTaskRelationPeer $criteria->addSelectColumn(ElementTaskRelationPeer::TAS_UID); - $criteria->addSelectColumn(ElementTaskRelationPeer::ELEMENT_UID_DEST); - } const COUNT = 'COUNT(ELEMENT_TASK_RELATION.ETR_UID)'; diff --git a/workflow/engine/classes/model/om/BaseProcess.php b/workflow/engine/classes/model/om/BaseProcess.php index deb9c6556..42e8131b9 100755 --- a/workflow/engine/classes/model/om/BaseProcess.php +++ b/workflow/engine/classes/model/om/BaseProcess.php @@ -255,6 +255,12 @@ abstract class BaseProcess extends BaseObject implements Persistent */ protected $pro_itee = 1; + /** + * The value for the pro_action_done field. + * @var string + */ + protected $pro_action_done = ''; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -729,6 +735,17 @@ abstract class BaseProcess extends BaseObject implements Persistent return $this->pro_itee; } + /** + * Get the [pro_action_done] column value. + * + * @return string + */ + public function getProActionDone() + { + + return $this->pro_action_done; + } + /** * Set the value of [pro_uid] column. * @@ -1567,6 +1584,28 @@ abstract class BaseProcess extends BaseObject implements Persistent } // setProItee() + /** + * Set the value of [pro_action_done] column. + * + * @param string $v new value + * @return void + */ + public function setProActionDone($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->pro_action_done !== $v || $v === '') { + $this->pro_action_done = $v; + $this->modifiedColumns[] = ProcessPeer::PRO_ACTION_DONE; + } + + } // setProActionDone() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1660,12 +1699,14 @@ abstract class BaseProcess extends BaseObject implements Persistent $this->pro_itee = $rs->getString($startcol + 37); + $this->pro_action_done = $rs->getString($startcol + 38); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 37; // 37 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 39; // 39 = ProcessPeer::NUM_COLUMNS - ProcessPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Process object", $e); @@ -1983,6 +2024,9 @@ abstract class BaseProcess extends BaseObject implements Persistent case 37: return $this->getProItee(); break; + case 38: + return $this->getProActionDone(); + break; default: return null; break; @@ -2041,6 +2085,7 @@ abstract class BaseProcess extends BaseObject implements Persistent $keys[35] => $this->getProCost(), $keys[36] => $this->getProUnitCost(), $keys[37] => $this->getProItee(), + $keys[38] => $this->getProActionDone(), ); return $result; } @@ -2186,6 +2231,9 @@ abstract class BaseProcess extends BaseObject implements Persistent case 37: $this->setProItee($value); break; + case 38: + $this->setProActionDone($value); + break; } // switch() } @@ -2361,6 +2409,10 @@ abstract class BaseProcess extends BaseObject implements Persistent $this->setProItee($arr[$keys[37]]); } + if (array_key_exists($keys[38], $arr)) { + $this->setProActionDone($arr[$keys[38]]); + } + } /** @@ -2524,6 +2576,10 @@ abstract class BaseProcess extends BaseObject implements Persistent $criteria->add(ProcessPeer::PRO_ITEE, $this->pro_itee); } + if ($this->isColumnModified(ProcessPeer::PRO_ACTION_DONE)) { + $criteria->add(ProcessPeer::PRO_ACTION_DONE, $this->pro_action_done); + } + return $criteria; } @@ -2652,6 +2708,8 @@ abstract class BaseProcess extends BaseObject implements Persistent $copyObj->setProItee($this->pro_itee); + $copyObj->setProActionDone($this->pro_action_done); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseProcessPeer.php b/workflow/engine/classes/model/om/BaseProcessPeer.php index ee25dc5b7..f84bb0718 100755 --- a/workflow/engine/classes/model/om/BaseProcessPeer.php +++ b/workflow/engine/classes/model/om/BaseProcessPeer.php @@ -25,7 +25,7 @@ abstract class BaseProcessPeer const CLASS_DEFAULT = 'classes.model.Process'; /** The total number of columns. */ - const NUM_COLUMNS = 37; + const NUM_COLUMNS = 39; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -145,6 +145,9 @@ abstract class BaseProcessPeer /** the column name for the PRO_ITEE field */ const PRO_ITEE = 'PROCESS.PRO_ITEE'; + /** the column name for the PRO_ACTION_DONE field */ + const PRO_ACTION_DONE = 'PROCESS.PRO_ACTION_DONE'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -156,10 +159,10 @@ abstract class BaseProcessPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProTitle', 'ProDescription', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', 'ProItee', ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_TITLE, ProcessPeer::PRO_DESCRIPTION, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ProcessPeer::PRO_ITEE, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_TITLE', 'PRO_DESCRIPTION', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', 'PRO_ITEE', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'ProTitle', 'ProDescription', 'ProParent', 'ProTime', 'ProTimeunit', 'ProStatus', 'ProTypeDay', 'ProType', 'ProAssignment', 'ProShowMap', 'ProShowMessage', 'ProSubprocess', 'ProTriOpen', 'ProTriDeleted', 'ProTriCanceled', 'ProTriPaused', 'ProTriReassigned', 'ProTriUnpaused', 'ProTypeProcess', 'ProShowDelegate', 'ProShowDynaform', 'ProCategory', 'ProSubCategory', 'ProIndustry', 'ProUpdateDate', 'ProCreateDate', 'ProCreateUser', 'ProHeight', 'ProWidth', 'ProTitleX', 'ProTitleY', 'ProDebug', 'ProDynaforms', 'ProDerivationScreenTpl', 'ProCost', 'ProUnitCost', 'ProItee', 'ProActionDone', ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID, ProcessPeer::PRO_TITLE, ProcessPeer::PRO_DESCRIPTION, ProcessPeer::PRO_PARENT, ProcessPeer::PRO_TIME, ProcessPeer::PRO_TIMEUNIT, ProcessPeer::PRO_STATUS, ProcessPeer::PRO_TYPE_DAY, ProcessPeer::PRO_TYPE, ProcessPeer::PRO_ASSIGNMENT, ProcessPeer::PRO_SHOW_MAP, ProcessPeer::PRO_SHOW_MESSAGE, ProcessPeer::PRO_SUBPROCESS, ProcessPeer::PRO_TRI_OPEN, ProcessPeer::PRO_TRI_DELETED, ProcessPeer::PRO_TRI_CANCELED, ProcessPeer::PRO_TRI_PAUSED, ProcessPeer::PRO_TRI_REASSIGNED, ProcessPeer::PRO_TRI_UNPAUSED, ProcessPeer::PRO_TYPE_PROCESS, ProcessPeer::PRO_SHOW_DELEGATE, ProcessPeer::PRO_SHOW_DYNAFORM, ProcessPeer::PRO_CATEGORY, ProcessPeer::PRO_SUB_CATEGORY, ProcessPeer::PRO_INDUSTRY, ProcessPeer::PRO_UPDATE_DATE, ProcessPeer::PRO_CREATE_DATE, ProcessPeer::PRO_CREATE_USER, ProcessPeer::PRO_HEIGHT, ProcessPeer::PRO_WIDTH, ProcessPeer::PRO_TITLE_X, ProcessPeer::PRO_TITLE_Y, ProcessPeer::PRO_DEBUG, ProcessPeer::PRO_DYNAFORMS, ProcessPeer::PRO_DERIVATION_SCREEN_TPL, ProcessPeer::PRO_COST, ProcessPeer::PRO_UNIT_COST, ProcessPeer::PRO_ITEE, ProcessPeer::PRO_ACTION_DONE, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'PRO_TITLE', 'PRO_DESCRIPTION', 'PRO_PARENT', 'PRO_TIME', 'PRO_TIMEUNIT', 'PRO_STATUS', 'PRO_TYPE_DAY', 'PRO_TYPE', 'PRO_ASSIGNMENT', 'PRO_SHOW_MAP', 'PRO_SHOW_MESSAGE', 'PRO_SUBPROCESS', 'PRO_TRI_OPEN', 'PRO_TRI_DELETED', 'PRO_TRI_CANCELED', 'PRO_TRI_PAUSED', 'PRO_TRI_REASSIGNED', 'PRO_TRI_UNPAUSED', 'PRO_TYPE_PROCESS', 'PRO_SHOW_DELEGATE', 'PRO_SHOW_DYNAFORM', 'PRO_CATEGORY', 'PRO_SUB_CATEGORY', 'PRO_INDUSTRY', 'PRO_UPDATE_DATE', 'PRO_CREATE_DATE', 'PRO_CREATE_USER', 'PRO_HEIGHT', 'PRO_WIDTH', 'PRO_TITLE_X', 'PRO_TITLE_Y', 'PRO_DEBUG', 'PRO_DYNAFORMS', 'PRO_DERIVATION_SCREEN_TPL', 'PRO_COST', 'PRO_UNIT_COST', 'PRO_ITEE', 'PRO_ACTION_DONE', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ) ); /** @@ -169,10 +172,10 @@ abstract class BaseProcessPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProTitle' => 1, 'ProDescription' => 2, 'ProParent' => 3, 'ProTime' => 4, 'ProTimeunit' => 5, 'ProStatus' => 6, 'ProTypeDay' => 7, 'ProType' => 8, 'ProAssignment' => 9, 'ProShowMap' => 10, 'ProShowMessage' => 11, 'ProSubprocess' => 12, 'ProTriOpen' => 13, 'ProTriDeleted' => 14, 'ProTriCanceled' => 15, 'ProTriPaused' => 16, 'ProTriReassigned' => 17, 'ProTriUnpaused' => 18, 'ProTypeProcess' => 19, 'ProShowDelegate' => 20, 'ProShowDynaform' => 21, 'ProCategory' => 22, 'ProSubCategory' => 23, 'ProIndustry' => 24, 'ProUpdateDate' => 25, 'ProCreateDate' => 26, 'ProCreateUser' => 27, 'ProHeight' => 28, 'ProWidth' => 29, 'ProTitleX' => 30, 'ProTitleY' => 31, 'ProDebug' => 32, 'ProDynaforms' => 33, 'ProDerivationScreenTpl' => 34, 'ProCost' => 35, 'ProUnitCost' => 36, 'ProItee' => 37, ), - BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_TITLE => 1, ProcessPeer::PRO_DESCRIPTION => 2, ProcessPeer::PRO_PARENT => 3, ProcessPeer::PRO_TIME => 4, ProcessPeer::PRO_TIMEUNIT => 5, ProcessPeer::PRO_STATUS => 6, ProcessPeer::PRO_TYPE_DAY => 7, ProcessPeer::PRO_TYPE => 8, ProcessPeer::PRO_ASSIGNMENT => 9, ProcessPeer::PRO_SHOW_MAP => 10, ProcessPeer::PRO_SHOW_MESSAGE => 11, ProcessPeer::PRO_SUBPROCESS => 12, ProcessPeer::PRO_TRI_OPEN => 13, ProcessPeer::PRO_TRI_DELETED => 14, ProcessPeer::PRO_TRI_CANCELED => 15, ProcessPeer::PRO_TRI_PAUSED => 16, ProcessPeer::PRO_TRI_REASSIGNED => 17, ProcessPeer::PRO_TRI_UNPAUSED => 18, ProcessPeer::PRO_TYPE_PROCESS => 19, ProcessPeer::PRO_SHOW_DELEGATE => 20, ProcessPeer::PRO_SHOW_DYNAFORM => 21, ProcessPeer::PRO_CATEGORY => 22, ProcessPeer::PRO_SUB_CATEGORY => 23, ProcessPeer::PRO_INDUSTRY => 24, ProcessPeer::PRO_UPDATE_DATE => 25, ProcessPeer::PRO_CREATE_DATE => 26, ProcessPeer::PRO_CREATE_USER => 27, ProcessPeer::PRO_HEIGHT => 28, ProcessPeer::PRO_WIDTH => 29, ProcessPeer::PRO_TITLE_X => 30, ProcessPeer::PRO_TITLE_Y => 31, ProcessPeer::PRO_DEBUG => 32, ProcessPeer::PRO_DYNAFORMS => 33, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 34, ProcessPeer::PRO_COST => 35, ProcessPeer::PRO_UNIT_COST => 36, ProcessPeer::PRO_ITEE => 37, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_TITLE' => 1, 'PRO_DESCRIPTION' => 2, 'PRO_PARENT' => 3, 'PRO_TIME' => 4, 'PRO_TIMEUNIT' => 5, 'PRO_STATUS' => 6, 'PRO_TYPE_DAY' => 7, 'PRO_TYPE' => 8, 'PRO_ASSIGNMENT' => 9, 'PRO_SHOW_MAP' => 10, 'PRO_SHOW_MESSAGE' => 11, 'PRO_SUBPROCESS' => 12, 'PRO_TRI_OPEN' => 13, 'PRO_TRI_DELETED' => 14, 'PRO_TRI_CANCELED' => 15, 'PRO_TRI_PAUSED' => 16, 'PRO_TRI_REASSIGNED' => 17, 'PRO_TRI_UNPAUSED' => 18, 'PRO_TYPE_PROCESS' => 19, 'PRO_SHOW_DELEGATE' => 20, 'PRO_SHOW_DYNAFORM' => 21, 'PRO_CATEGORY' => 22, 'PRO_SUB_CATEGORY' => 23, 'PRO_INDUSTRY' => 24, 'PRO_UPDATE_DATE' => 25, 'PRO_CREATE_DATE' => 26, 'PRO_CREATE_USER' => 27, 'PRO_HEIGHT' => 28, 'PRO_WIDTH' => 29, 'PRO_TITLE_X' => 30, 'PRO_TITLE_Y' => 31, 'PRO_DEBUG' => 32, 'PRO_DYNAFORMS' => 33, 'PRO_DERIVATION_SCREEN_TPL' => 34, 'PRO_COST' => 35, 'PRO_UNIT_COST' => 36, 'PRO_ITEE' => 37, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'ProTitle' => 1, 'ProDescription' => 2, 'ProParent' => 3, 'ProTime' => 4, 'ProTimeunit' => 5, 'ProStatus' => 6, 'ProTypeDay' => 7, 'ProType' => 8, 'ProAssignment' => 9, 'ProShowMap' => 10, 'ProShowMessage' => 11, 'ProSubprocess' => 12, 'ProTriOpen' => 13, 'ProTriDeleted' => 14, 'ProTriCanceled' => 15, 'ProTriPaused' => 16, 'ProTriReassigned' => 17, 'ProTriUnpaused' => 18, 'ProTypeProcess' => 19, 'ProShowDelegate' => 20, 'ProShowDynaform' => 21, 'ProCategory' => 22, 'ProSubCategory' => 23, 'ProIndustry' => 24, 'ProUpdateDate' => 25, 'ProCreateDate' => 26, 'ProCreateUser' => 27, 'ProHeight' => 28, 'ProWidth' => 29, 'ProTitleX' => 30, 'ProTitleY' => 31, 'ProDebug' => 32, 'ProDynaforms' => 33, 'ProDerivationScreenTpl' => 34, 'ProCost' => 35, 'ProUnitCost' => 36, 'ProItee' => 37, 'ProActionDone' => 38, ), + BasePeer::TYPE_COLNAME => array (ProcessPeer::PRO_UID => 0, ProcessPeer::PRO_TITLE => 1, ProcessPeer::PRO_DESCRIPTION => 2, ProcessPeer::PRO_PARENT => 3, ProcessPeer::PRO_TIME => 4, ProcessPeer::PRO_TIMEUNIT => 5, ProcessPeer::PRO_STATUS => 6, ProcessPeer::PRO_TYPE_DAY => 7, ProcessPeer::PRO_TYPE => 8, ProcessPeer::PRO_ASSIGNMENT => 9, ProcessPeer::PRO_SHOW_MAP => 10, ProcessPeer::PRO_SHOW_MESSAGE => 11, ProcessPeer::PRO_SUBPROCESS => 12, ProcessPeer::PRO_TRI_OPEN => 13, ProcessPeer::PRO_TRI_DELETED => 14, ProcessPeer::PRO_TRI_CANCELED => 15, ProcessPeer::PRO_TRI_PAUSED => 16, ProcessPeer::PRO_TRI_REASSIGNED => 17, ProcessPeer::PRO_TRI_UNPAUSED => 18, ProcessPeer::PRO_TYPE_PROCESS => 19, ProcessPeer::PRO_SHOW_DELEGATE => 20, ProcessPeer::PRO_SHOW_DYNAFORM => 21, ProcessPeer::PRO_CATEGORY => 22, ProcessPeer::PRO_SUB_CATEGORY => 23, ProcessPeer::PRO_INDUSTRY => 24, ProcessPeer::PRO_UPDATE_DATE => 25, ProcessPeer::PRO_CREATE_DATE => 26, ProcessPeer::PRO_CREATE_USER => 27, ProcessPeer::PRO_HEIGHT => 28, ProcessPeer::PRO_WIDTH => 29, ProcessPeer::PRO_TITLE_X => 30, ProcessPeer::PRO_TITLE_Y => 31, ProcessPeer::PRO_DEBUG => 32, ProcessPeer::PRO_DYNAFORMS => 33, ProcessPeer::PRO_DERIVATION_SCREEN_TPL => 34, ProcessPeer::PRO_COST => 35, ProcessPeer::PRO_UNIT_COST => 36, ProcessPeer::PRO_ITEE => 37, ProcessPeer::PRO_ACTION_DONE => 38, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'PRO_TITLE' => 1, 'PRO_DESCRIPTION' => 2, 'PRO_PARENT' => 3, 'PRO_TIME' => 4, 'PRO_TIMEUNIT' => 5, 'PRO_STATUS' => 6, 'PRO_TYPE_DAY' => 7, 'PRO_TYPE' => 8, 'PRO_ASSIGNMENT' => 9, 'PRO_SHOW_MAP' => 10, 'PRO_SHOW_MESSAGE' => 11, 'PRO_SUBPROCESS' => 12, 'PRO_TRI_OPEN' => 13, 'PRO_TRI_DELETED' => 14, 'PRO_TRI_CANCELED' => 15, 'PRO_TRI_PAUSED' => 16, 'PRO_TRI_REASSIGNED' => 17, 'PRO_TRI_UNPAUSED' => 18, 'PRO_TYPE_PROCESS' => 19, 'PRO_SHOW_DELEGATE' => 20, 'PRO_SHOW_DYNAFORM' => 21, 'PRO_CATEGORY' => 22, 'PRO_SUB_CATEGORY' => 23, 'PRO_INDUSTRY' => 24, 'PRO_UPDATE_DATE' => 25, 'PRO_CREATE_DATE' => 26, 'PRO_CREATE_USER' => 27, 'PRO_HEIGHT' => 28, 'PRO_WIDTH' => 29, 'PRO_TITLE_X' => 30, 'PRO_TITLE_Y' => 31, 'PRO_DEBUG' => 32, 'PRO_DYNAFORMS' => 33, 'PRO_DERIVATION_SCREEN_TPL' => 34, 'PRO_COST' => 35, 'PRO_UNIT_COST' => 36, 'PRO_ITEE' => 37, 'PRO_ACTION_DONE' => 38, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ) ); /** @@ -349,6 +352,8 @@ abstract class BaseProcessPeer $criteria->addSelectColumn(ProcessPeer::PRO_ITEE); + $criteria->addSelectColumn(ProcessPeer::PRO_ACTION_DONE); + } const COUNT = 'COUNT(PROCESS.PRO_UID)'; diff --git a/workflow/engine/classes/model/om/BaseRoute.php b/workflow/engine/classes/model/om/BaseRoute.php index 77216db01..82f456c2f 100755 --- a/workflow/engine/classes/model/om/BaseRoute.php +++ b/workflow/engine/classes/model/om/BaseRoute.php @@ -135,12 +135,6 @@ abstract class BaseRoute extends BaseObject implements Persistent */ protected $gat_uid = ''; - /** - * The value for the rou_element_origin field. - * @var string - */ - protected $rou_element_origin = ''; - /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -353,17 +347,6 @@ abstract class BaseRoute extends BaseObject implements Persistent return $this->gat_uid; } - /** - * Get the [rou_element_origin] column value. - * - * @return string - */ - public function getRouElementOrigin() - { - - return $this->rou_element_origin; - } - /** * Set the value of [rou_uid] column. * @@ -760,28 +743,6 @@ abstract class BaseRoute extends BaseObject implements Persistent } // setGatUid() - /** - * Set the value of [rou_element_origin] column. - * - * @param string $v new value - * @return void - */ - public function setRouElementOrigin($v) - { - - // Since the native PHP type for this column is string, - // we will cast the input to a string (if it is not). - if ($v !== null && !is_string($v)) { - $v = (string) $v; - } - - if ($this->rou_element_origin !== $v || $v === '') { - $this->rou_element_origin = $v; - $this->modifiedColumns[] = RoutePeer::ROU_ELEMENT_ORIGIN; - } - - } // setRouElementOrigin() - /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -835,14 +796,12 @@ abstract class BaseRoute extends BaseObject implements Persistent $this->gat_uid = $rs->getString($startcol + 17); - $this->rou_element_origin = $rs->getString($startcol + 18); - $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 19; // 19 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 18; // 18 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Route object", $e); @@ -1100,9 +1059,6 @@ abstract class BaseRoute extends BaseObject implements Persistent case 17: return $this->getGatUid(); break; - case 18: - return $this->getRouElementOrigin(); - break; default: return null; break; @@ -1141,7 +1097,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $keys[15] => $this->getRouFromPort(), $keys[16] => $this->getRouEvnUid(), $keys[17] => $this->getGatUid(), - $keys[18] => $this->getRouElementOrigin(), ); return $result; } @@ -1227,9 +1182,6 @@ abstract class BaseRoute extends BaseObject implements Persistent case 17: $this->setGatUid($value); break; - case 18: - $this->setRouElementOrigin($value); - break; } // switch() } @@ -1325,10 +1277,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $this->setGatUid($arr[$keys[17]]); } - if (array_key_exists($keys[18], $arr)) { - $this->setRouElementOrigin($arr[$keys[18]]); - } - } /** @@ -1412,10 +1360,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $criteria->add(RoutePeer::GAT_UID, $this->gat_uid); } - if ($this->isColumnModified(RoutePeer::ROU_ELEMENT_ORIGIN)) { - $criteria->add(RoutePeer::ROU_ELEMENT_ORIGIN, $this->rou_element_origin); - } - return $criteria; } @@ -1504,8 +1448,6 @@ abstract class BaseRoute extends BaseObject implements Persistent $copyObj->setGatUid($this->gat_uid); - $copyObj->setRouElementOrigin($this->rou_element_origin); - $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseRoutePeer.php b/workflow/engine/classes/model/om/BaseRoutePeer.php index 2af9890dd..bceac65c0 100755 --- a/workflow/engine/classes/model/om/BaseRoutePeer.php +++ b/workflow/engine/classes/model/om/BaseRoutePeer.php @@ -25,7 +25,7 @@ abstract class BaseRoutePeer const CLASS_DEFAULT = 'classes.model.Route'; /** The total number of columns. */ - const NUM_COLUMNS = 19; + const NUM_COLUMNS = 18; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -85,9 +85,6 @@ abstract class BaseRoutePeer /** the column name for the GAT_UID field */ const GAT_UID = 'ROUTE.GAT_UID'; - /** the column name for the ROU_ELEMENT_ORIGIN field */ - const ROU_ELEMENT_ORIGIN = 'ROUTE.ROU_ELEMENT_ORIGIN'; - /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -99,10 +96,10 @@ abstract class BaseRoutePeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouDefault', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', 'RouElementOrigin', ), - BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_DEFAULT, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, RoutePeer::ROU_ELEMENT_ORIGIN, ), - BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_DEFAULT', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', 'ROU_ELEMENT_ORIGIN', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ) + BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouDefault', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', ), + BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_DEFAULT, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, ), + BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_DEFAULT', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ) ); /** @@ -112,10 +109,10 @@ abstract class BaseRoutePeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouDefault' => 7, 'RouCondition' => 8, 'RouToLastUser' => 9, 'RouOptional' => 10, 'RouSendEmail' => 11, 'RouSourceanchor' => 12, 'RouTargetanchor' => 13, 'RouToPort' => 14, 'RouFromPort' => 15, 'RouEvnUid' => 16, 'GatUid' => 17, 'RouElementOrigin' => 18, ), - BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_DEFAULT => 7, RoutePeer::ROU_CONDITION => 8, RoutePeer::ROU_TO_LAST_USER => 9, RoutePeer::ROU_OPTIONAL => 10, RoutePeer::ROU_SEND_EMAIL => 11, RoutePeer::ROU_SOURCEANCHOR => 12, RoutePeer::ROU_TARGETANCHOR => 13, RoutePeer::ROU_TO_PORT => 14, RoutePeer::ROU_FROM_PORT => 15, RoutePeer::ROU_EVN_UID => 16, RoutePeer::GAT_UID => 17, RoutePeer::ROU_ELEMENT_ORIGIN => 18, ), - BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_DEFAULT' => 7, 'ROU_CONDITION' => 8, 'ROU_TO_LAST_USER' => 9, 'ROU_OPTIONAL' => 10, 'ROU_SEND_EMAIL' => 11, 'ROU_SOURCEANCHOR' => 12, 'ROU_TARGETANCHOR' => 13, 'ROU_TO_PORT' => 14, 'ROU_FROM_PORT' => 15, 'ROU_EVN_UID' => 16, 'GAT_UID' => 17, 'ROU_ELEMENT_ORIGIN' => 18, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, ) + BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouDefault' => 7, 'RouCondition' => 8, 'RouToLastUser' => 9, 'RouOptional' => 10, 'RouSendEmail' => 11, 'RouSourceanchor' => 12, 'RouTargetanchor' => 13, 'RouToPort' => 14, 'RouFromPort' => 15, 'RouEvnUid' => 16, 'GatUid' => 17, ), + BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_DEFAULT => 7, RoutePeer::ROU_CONDITION => 8, RoutePeer::ROU_TO_LAST_USER => 9, RoutePeer::ROU_OPTIONAL => 10, RoutePeer::ROU_SEND_EMAIL => 11, RoutePeer::ROU_SOURCEANCHOR => 12, RoutePeer::ROU_TARGETANCHOR => 13, RoutePeer::ROU_TO_PORT => 14, RoutePeer::ROU_FROM_PORT => 15, RoutePeer::ROU_EVN_UID => 16, RoutePeer::GAT_UID => 17, ), + BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_DEFAULT' => 7, 'ROU_CONDITION' => 8, 'ROU_TO_LAST_USER' => 9, 'ROU_OPTIONAL' => 10, 'ROU_SEND_EMAIL' => 11, 'ROU_SOURCEANCHOR' => 12, 'ROU_TARGETANCHOR' => 13, 'ROU_TO_PORT' => 14, 'ROU_FROM_PORT' => 15, 'ROU_EVN_UID' => 16, 'GAT_UID' => 17, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ) ); /** @@ -252,8 +249,6 @@ abstract class BaseRoutePeer $criteria->addSelectColumn(RoutePeer::GAT_UID); - $criteria->addSelectColumn(RoutePeer::ROU_ELEMENT_ORIGIN); - } const COUNT = 'COUNT(ROUTE.ROU_UID)'; diff --git a/workflow/engine/classes/model/om/BaseTask.php b/workflow/engine/classes/model/om/BaseTask.php index e4466be70..c757656aa 100755 --- a/workflow/engine/classes/model/om/BaseTask.php +++ b/workflow/engine/classes/model/om/BaseTask.php @@ -329,9 +329,9 @@ abstract class BaseTask extends BaseObject implements Persistent /** * The value for the tas_selfservice_time field. - * @var string + * @var int */ - protected $tas_selfservice_time = ''; + protected $tas_selfservice_time = 0; /** * The value for the tas_selfservice_time_unit field. @@ -918,7 +918,7 @@ abstract class BaseTask extends BaseObject implements Persistent /** * Get the [tas_selfservice_time] column value. * - * @return string + * @return int */ public function getTasSelfserviceTime() { @@ -2050,19 +2050,19 @@ abstract class BaseTask extends BaseObject implements Persistent /** * Set the value of [tas_selfservice_time] column. * - * @param string $v new value + * @param int $v new value * @return void */ public function setTasSelfserviceTime($v) { - // Since the native PHP type for this column is string, - // we will cast the input to a string (if it is not). - if ($v !== null && !is_string($v)) { - $v = (string) $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_selfservice_time !== $v || $v === '') { + if ($this->tas_selfservice_time !== $v || $v === 0) { $this->tas_selfservice_time = $v; $this->modifiedColumns[] = TaskPeer::TAS_SELFSERVICE_TIME; } @@ -2252,7 +2252,7 @@ abstract class BaseTask extends BaseObject implements Persistent $this->tas_selfservice_timeout = $rs->getInt($startcol + 49); - $this->tas_selfservice_time = $rs->getString($startcol + 50); + $this->tas_selfservice_time = $rs->getInt($startcol + 50); $this->tas_selfservice_time_unit = $rs->getString($startcol + 51); diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index ea60b44cb..96e902bcc 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -913,6 +913,7 @@ + @@ -1086,7 +1087,6 @@ - @@ -1307,7 +1307,7 @@ - + @@ -4641,7 +4641,6 @@ - diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 3043b96fa..4addde059 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -460,6 +460,7 @@ CREATE TABLE `PROCESS` `PRO_COST` DECIMAL(7,2) default 0, `PRO_UNIT_COST` VARCHAR(50) default '', `PRO_ITEE` INTEGER default 0 NOT NULL, + `PRO_ACTION_DONE` MEDIUMTEXT default '', PRIMARY KEY (`PRO_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Store process Information'; #----------------------------------------------------------------------------- @@ -537,7 +538,6 @@ CREATE TABLE `ROUTE` `ROU_FROM_PORT` INTEGER default 2 NOT NULL, `ROU_EVN_UID` VARCHAR(32) default '' NOT NULL, `GAT_UID` VARCHAR(32) default '' NOT NULL, - `ROU_ELEMENT_ORIGIN` VARCHAR(32) default '', PRIMARY KEY (`ROU_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Differents flows for a flow in business process'; #----------------------------------------------------------------------------- @@ -654,12 +654,12 @@ CREATE TABLE `TASK` `TAS_BOUNDARY` VARCHAR(32) default '' NOT NULL, `TAS_DERIVATION_SCREEN_TPL` VARCHAR(128) default '', `TAS_SELFSERVICE_TIMEOUT` INTEGER default 0, - `TAS_SELFSERVICE_TIME` VARCHAR(15) default '', + `TAS_SELFSERVICE_TIME` INTEGER default 0, `TAS_SELFSERVICE_TIME_UNIT` VARCHAR(15) default '', `TAS_SELFSERVICE_TRIGGER_UID` VARCHAR(32) default '', `TAS_SELFSERVICE_EXECUTION` VARCHAR(15) default 'EVERY_TIME', PRIMARY KEY (`TAS_UID`), - KEY `indexTasUid` (`TAS_UID`) + KEY `indexTasUid`(`TAS_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8' COMMENT='Task of workflow'; #----------------------------------------------------------------------------- #-- TASK_USER @@ -2678,7 +2678,6 @@ CREATE TABLE `ELEMENT_TASK_RELATION` `ELEMENT_UID` VARCHAR(32) NOT NULL, `ELEMENT_TYPE` VARCHAR(50) default '' NOT NULL, `TAS_UID` VARCHAR(32) NOT NULL, - `ELEMENT_UID_DEST` VARCHAR(32) default '', PRIMARY KEY (`ETR_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/js/dbConnections/main.js b/workflow/engine/js/dbConnections/main.js index f27d87559..4da60c47d 100755 --- a/workflow/engine/js/dbConnections/main.js +++ b/workflow/engine/js/dbConnections/main.js @@ -297,9 +297,9 @@ function testHost(step) var user = $('form[DBS_USERNAME]').value; if($('form[DBS_PASSWORD]').value != '') { - var passwd = $('form[DBS_PASSWORD]').value; + var pas = $('form[DBS_PASSWORD]').value; } else { - var passwd = 'none'; + var pas = 'none'; } if($('form[DBS_PORT]').value.trim() != '') { @@ -312,7 +312,7 @@ function testHost(step) var tns = getField("DBS_TNS").value; var requestfile = PROCESS_REQUEST_FILE; - var uri = 'action=testConnection&step='+step+'&type='+type+'&server='+server+'&db_name='+db_name+'&user='+user+'&port='+port+'&passwd='+passwd + "&connectionType=" + connectionType + "&tns=" + tns; + var uri = 'action=testConnection&step='+step+'&type='+type+'&server='+server+'&db_name='+db_name+'&user='+user+'&port='+port+'&passwd='+pas + "&connectionType=" + connectionType + "&tns=" + tns; var ajax = AJAX(); mainRequest = ajax; diff --git a/workflow/engine/methods/cases/ajaxListener.php b/workflow/engine/methods/cases/ajaxListener.php index 1a4cd6874..2eb37e1b7 100755 --- a/workflow/engine/methods/cases/ajaxListener.php +++ b/workflow/engine/methods/cases/ajaxListener.php @@ -221,7 +221,16 @@ class Ajax if ($_SESSION["TASK"] != "" && $_SESSION["TASK"] != "-1") { $oTask = new Task(); - $aTask = $oTask->load($_SESSION['TASK']); + $tasksInParallel = explode("-", $_SESSION['TASK']); + $tasksInParallel = array_filter($tasksInParallel, function($value) { + return !empty($value); + }); + $nTasksInParallel = count($tasksInParallel); + if ($nTasksInParallel > 1) { + $aTask = $oTask->load($tasksInParallel[$nTasksInParallel - 1]); + } else { + $aTask = $oTask->load($_SESSION['TASK']); + } if ($aTask['TAS_TYPE'] == 'ADHOC') { $options[] = Array('text' => G::LoadTranslation('ID_ADHOC_ASSIGNMENT'), 'fn' => 'adhocAssignmentUsers'); } diff --git a/workflow/engine/methods/cases/casesStreamingFile.php b/workflow/engine/methods/cases/casesStreamingFile.php index c578c0e06..2ee2b54ae 100644 --- a/workflow/engine/methods/cases/casesStreamingFile.php +++ b/workflow/engine/methods/cases/casesStreamingFile.php @@ -1,13 +1,4 @@ error = G::LoadTranslation('ID_LOGIN_AGAIN'); - $responseObject->success = true; - $responseObject->lostSession = true; - print G::json_encode( $responseObject ); - die(); -} - $actionAjax = isset( $_REQUEST['actionAjax'] ) ? $_REQUEST['actionAjax'] : null; if ($actionAjax == "streaming") { diff --git a/workflow/engine/methods/cases/cases_Resume.php b/workflow/engine/methods/cases/cases_Resume.php index 547ffc0e8..19c5ea382 100755 --- a/workflow/engine/methods/cases/cases_Resume.php +++ b/workflow/engine/methods/cases/cases_Resume.php @@ -120,7 +120,16 @@ $objTask = new Task(); if(!isset($Fields['TAS_UID']) || $Fields['TAS_UID'] == '') { $Fields['TAS_UID'] = $Fields['APP_DATA']['TASK']; } -$aTask = $objTask->load( $Fields['TAS_UID'] ); +$tasksInParallel = explode("-", $Fields['TAS_UID']); +$tasksInParallel = array_filter($tasksInParallel, function($value) { + return !empty($value); +}); +$nTasksInParallel = count($tasksInParallel); +if ($nTasksInParallel > 1) { + $aTask = $objTask->load($tasksInParallel[$nTasksInParallel - 1]); +} else { + $aTask = $objTask->load($Fields['TAS_UID']); +} $Fields['TAS_TITLE'] = $aTask['TAS_TITLE']; $objUser = new Users(); diff --git a/workflow/engine/methods/dbConnections/dbConnectionsAjax.php b/workflow/engine/methods/dbConnections/dbConnectionsAjax.php index eb7670381..4cbf2b76e 100755 --- a/workflow/engine/methods/dbConnections/dbConnectionsAjax.php +++ b/workflow/engine/methods/dbConnections/dbConnectionsAjax.php @@ -351,7 +351,8 @@ switch ($action) { if ($engine != "0") { $dbs = new dbConnections(); - echo Bootstrap::json_encode($dbs->getEncondeList($filter->xssFilterHard($engine))); + $var = Bootstrap::json_encode($dbs->getEncondeList($filter->xssFilterHard($engine))); + echo $var; } else { echo '[["0","..."]]'; diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index f1650f5f1..56841efa4 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -156,6 +156,12 @@ try { G::SendTemporalMessage($errLabel, "warning"); } + $u = (array_key_exists('form', $_POST) && array_key_exists('URL', $_POST['form']))? 'u=' . urlencode($_POST['form']['URL']) : ''; + + if ($u != '') { + $urlLogin = $urlLogin . ((preg_match('/^.+\?.+$/', $urlLogin))? '&' : '?') . $u; + } + G::header('Location: ' . $urlLogin); exit(0); } diff --git a/workflow/engine/methods/processes/processes_Delete.php b/workflow/engine/methods/processes/processes_Delete.php index 3e88c8ccd..2ccbdd5d3 100755 --- a/workflow/engine/methods/processes/processes_Delete.php +++ b/workflow/engine/methods/processes/processes_Delete.php @@ -42,9 +42,9 @@ if ($access != 1) { //$oProcessMap = new ProcessMap(); $uids = explode(',', $_POST['PRO_UIDS']); -try { +try { - foreach ($uids as $uid) { + foreach ($uids as $uid) { //Add Audit Log $oProcess = new Process(); $process=$oProcess->load($uid); @@ -59,10 +59,11 @@ try { $resp = new StdClass(); $resp->status = 0; $resp->msg = 'All process was deleted successfully'; - + echo G::json_encode($resp); } catch (Exception $e) { + $resp = new stdClass(); $resp->status = 1; $resp->msg = $e->getMessage(); echo G::json_encode($resp); diff --git a/workflow/engine/methods/users/users_Ajax.php b/workflow/engine/methods/users/users_Ajax.php index d517b980a..a2d63f96d 100644 --- a/workflow/engine/methods/users/users_Ajax.php +++ b/workflow/engine/methods/users/users_Ajax.php @@ -91,11 +91,13 @@ try { $oTasks = new Tasks(); switch ((int) $_POST['TU_RELATION']) { case 1: - echo htmlentities($oTasks->assignUser($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']), ENT_QUOTES | ENT_HTML5, 'UTF-8'); + $resh = htmlentities($oTasks->assignUser($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']), ENT_QUOTES | ENT_HTML5, 'UTF-8'); + echo $res; G::auditlog("AssignUserTask","Assign a User to a Task -> ".$_POST['TAS_UID'].' User UID -> '.$_POST['USR_UID']); break; case 2: - echo htmlentities($oTasks->assignGroup($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']), ENT_QUOTES | ENT_HTML5, 'UTF-8'); + $resh = htmlentities($oTasks->assignGroup($_POST['TAS_UID'], $_POST['USR_UID'], $_POST['TU_TYPE']), ENT_QUOTES | ENT_HTML5, 'UTF-8'); + echo $resh; G::auditlog("AssignGroupTask","Assign a Group to a Task -> ".$_POST['TAS_UID'].' User UID -> '.$_POST['USR_UID']); break; } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php b/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php index d4ae63618..9f06bd850 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/ElementTaskRelation.php @@ -9,8 +9,7 @@ class ElementTaskRelation "PRJ_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "projectUid"), "ELEMENT_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUid"), "ELEMENT_TYPE" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementType"), - "TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid"), - "ELEMENT_UID_DEST" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "elementUidDest") + "TAS_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "taskUid") ); private $formatFieldNameInUppercase = true; @@ -360,30 +359,5 @@ class ElementTaskRelation throw $e; } } - - /** - * Verify if exists the Element-Task-Relation Gateway to Gateway - * - * @param string $elementUid uid of Element-Task-Relation - * @param string $elementUidDest uid of Element-Task-Relation Destiny - * - * return bool Return true if exists the Element-Task-Relation Gateway to Gateway, false otherwise - */ - public function existsGatewayToGateway($elementUid,$elementUidDest) - { - try { - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\ElementTaskRelationPeer::ETR_UID); - $criteria->add(\ElementTaskRelationPeer::ELEMENT_UID, $elementUid, \Criteria::EQUAL); - $criteria->add(\ElementTaskRelationPeer::ELEMENT_UID_DEST, $elementUidDest, \Criteria::EQUAL); - $rsCriteria = \UsersPeer::doSelectRS( $criteria ); - $rsCriteria->setFetchmode( \ResultSet::FETCHMODE_ASSOC ); - $rsCriteria->next(); - - return ( $rsCriteria->getRow() )? true : false; - } catch (\Exception $e) { - throw $e; - } - } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php index 0bb2d003f..1b36d4cd5 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/EmailEvent.php @@ -69,9 +69,9 @@ class EmailEvent $aRow['EMAIL'] = $aRow['MESS_ACCOUNT']; } else { $aRow['EMAIL'] = $aRow['MESS_FROM_MAIL']; - } + } if($aRow['EMAIL'] != "") { - $accountsArray[] = array_change_key_case($aRow, CASE_LOWER); + $accountsArray[] = array_change_key_case($aRow, CASE_LOWER); } } $result->next(); @@ -445,10 +445,12 @@ class EmailEvent $emailTo = $email; } } - if(!empty($emailTo)) { + if(!empty($emailTo) && $arrayData[3] != '') { $subject = $arrayData[5]; $subject = \G::replaceDataField($arrayData[5], $arrayApplicationData['APP_DATA']); \PMFSendMessage($appUID, $arrayData[3], $emailTo, '', '', $subject, $contentFile['prf_filename'], array()); + } else { + \Bootstrap::registerMonolog('EmailEventMailError', 200, \G::LoadTranslation('ID_EMAIL_EVENT_CONFIGURATION_EMAIL', array($eventUid, $prj_uid)), ['eventUid' => $eventUid, 'prj_uid' => $prj_uid], SYS_SYS, 'emailEvent.log'); } } } diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 262f7765a..d7154ebfa 100755 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -718,26 +718,10 @@ class BpmnWorkflow extends Project\Bpmn } */ - public function createTaskByElement($elementUid, $elementType, $key, $elementUidDest="", $routeType = '') + private function __createTaskByElement($elementUid, $elementType, $key) { try { - $flagElementTaskRelation = false; - if($elementUidDest != ""){ - if( isset($this->arrayElementTaskRelation[$elementUid][$elementUidDest]) ){ - $flagElementTaskRelation = true; - }else{ - $flagElementTaskRelation = false; - } - }else{ - if (isset($this->arrayElementTaskRelation[$elementUid])) { - $taskUid = $this->arrayElementTaskRelation[$elementUid]; - $flagElementTaskRelation = true; - }else{ - $flagElementTaskRelation = false; - } - } - if ($flagElementTaskRelation || (isset($this->arrayElementTaskRelation[$elementUid]) && $routeType === - 'SEC-JOIN')) { + if (isset($this->arrayElementTaskRelation[$elementUid])) { $taskUid = $this->arrayElementTaskRelation[$elementUid]; } else { $taskPosX = 0; @@ -793,30 +777,16 @@ class BpmnWorkflow extends Project\Bpmn //Element-Task-Relation - Create $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); - if($elementUidDest == ""){ - $arrayResult = $elementTaskRelation->create( - $this->wp->getUid(), - array( - "ELEMENT_UID" => $elementUid, - "ELEMENT_TYPE" => $elementType, - "TAS_UID" => $taskUid - ) - ); - }else{ - $createGaToGa = $elementTaskRelation->existsGatewayToGateway($elementUid, $elementUidDest); - if(!$createGaToGa){ - $arrayResult = $elementTaskRelation->create( - $this->wp->getUid(), - array( - "ELEMENT_UID" => $elementUid, - "ELEMENT_TYPE" => $elementType, - "TAS_UID" => $taskUid, - "ELEMENT_UID_DEST" => $elementUidDest - ) - ); - } - } + $arrayResult = $elementTaskRelation->create( + $this->wp->getUid(), + [ + 'ELEMENT_UID' => $elementUid, + 'ELEMENT_TYPE' => $elementType, + 'TAS_UID' => $taskUid + ] + ); + //Array - Add element $this->arrayElementTaskRelation[$elementUid] = $taskUid; } @@ -899,12 +869,10 @@ class BpmnWorkflow extends Project\Bpmn break; case "bpmnGateway": //Gateway ----> Gateway - $taskUid = $this->createTaskByElement( - $gatewayUid, - "bpmnGateway", - "gateway-to-gateway", - $arrayFlowData["FLO_ELEMENT_DEST"], - $routeType + $taskUid = $this->__createTaskByElement( + $arrayFlowData['FLO_ELEMENT_DEST'], + 'bpmnGateway', + 'gateway-to-gateway' ); $result = $this->wp->addRoute($activityUid, $taskUid, $routeType, $routeCondition, $routeDefault); @@ -924,7 +892,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -934,7 +902,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -986,7 +954,7 @@ class BpmnWorkflow extends Project\Bpmn "EMAIL" => "intermediate-throw-email-event" ); - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $eventUid, "bpmnEvent", $arrayKey[$arrayEventData["EVN_MARKER"]] @@ -1039,7 +1007,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -1049,7 +1017,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -1060,7 +1028,7 @@ class BpmnWorkflow extends Project\Bpmn break; default: //EMPTY //and others types - $result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault, $eventUid); + $result = $this->wp->addRoute($activityUid, -1, $routeType, $routeCondition, $routeDefault); break; } break; @@ -1088,18 +1056,17 @@ class BpmnWorkflow extends Project\Bpmn public function mapBpmnFlowsToWorkflowRoutes() { - //Task dummies //Delete Task Routes - foreach ($this->arrayElementTaskRelation as $value) { - $this->wp->resetTaskRoutes($value); - } + //Delete Routes + $criteria = new \Criteria('workflow'); + + $criteria->add(\RoutePeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + + \RoutePeer::doDelete($criteria); //Activities foreach ($this->getActivities() as $value) { $activity = $value; - //Delete Task Routes - $this->wp->resetTaskRoutes($activity["ACT_UID"]); - //Flows $arrayFlow = \BpmnFlow::findAllBy(array( \BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL), @@ -1133,7 +1100,7 @@ class BpmnWorkflow extends Project\Bpmn //$event->getEvnMarker(): EMPTY or MESSAGETHROW switch ($event->getEvnMarker()) { case "MESSAGETHROW": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-message-event" @@ -1143,7 +1110,7 @@ class BpmnWorkflow extends Project\Bpmn $result = $this->wp->addRoute($taskUid, -1, "SEQUENTIAL"); break; case "EMAIL": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event->getEvnUid(), "bpmnEvent", "end-email-event" @@ -1178,7 +1145,7 @@ class BpmnWorkflow extends Project\Bpmn case "START": switch ($event["EVN_MARKER"]) { case "MESSAGECATCH": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event["EVN_UID"], "bpmnEvent", "start-message-event" @@ -1189,7 +1156,7 @@ class BpmnWorkflow extends Project\Bpmn $this->mapBpmnEventToWorkflowRoutes($taskUid, $event["EVN_UID"]); break; case "TIMER": - $taskUid = $this->createTaskByElement( + $taskUid = $this->__createTaskByElement( $event["EVN_UID"], "bpmnEvent", "start-timer-event" @@ -1481,6 +1448,7 @@ class BpmnWorkflow extends Project\Bpmn $uidOld = $lanesetData["LNS_UID"]; $lanesetData["LNS_UID"] = Util\Common::generateUID(); $diagram = self::refreshElementUid($diagram, $uidOld, $lanesetData["LNS_UID"]); + $result[] = array( "object" => "laneset", "old_uid" => $uidOld, @@ -1525,6 +1493,7 @@ class BpmnWorkflow extends Project\Bpmn $uidOld = $laneData["LAN_UID"]; $laneData["LAN_UID"] = Util\Common::generateUID(); $diagram = self::refreshElementUid($diagram, $uidOld, $laneData["LAN_UID"]); + $result[] = array( "object" => "lane", "old_uid" => $uidOld, @@ -1948,14 +1917,27 @@ class BpmnWorkflow extends Project\Bpmn $arrayGatewayData = $bwp->getGateway($value); if (!is_null($arrayGatewayData)) { - $arrayFlow = \BpmnFlow::findAllBy(array( - \BpmnFlowPeer::FLO_TYPE => array("MESSAGE", \Criteria::NOT_EQUAL), - \BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData["GAT_UID"], - \BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => "bpmnGateway" - )); + $arrayFlow = \BpmnFlow::findAllBy([ + \BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL], + \BpmnFlowPeer::FLO_ELEMENT_DEST => $arrayGatewayData['GAT_UID'], + \BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE => 'bpmnGateway' + ]); if (count($arrayFlow) > 1) { - $bwp->updateGateway($arrayGatewayData["GAT_UID"], array("GAT_DIRECTION" => "CONVERGING")); + $arrayFlow = \BpmnFlow::findAllBy([ + \BpmnFlowPeer::FLO_TYPE => ['MESSAGE', \Criteria::NOT_EQUAL], + \BpmnFlowPeer::FLO_ELEMENT_ORIGIN => $arrayGatewayData['GAT_UID'], + \BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE => 'bpmnGateway' + ]); + + if (count($arrayFlow) == 1) { + $bwp->updateGateway($arrayGatewayData['GAT_UID'], ['GAT_DIRECTION' => 'CONVERGING']); + + $arrayFlowData = $arrayFlow[0]->toArray(); + + $bpmn = new Project\Bpmn(); + $bpmn->updateFlow($arrayFlowData['FLO_UID'], array_merge($arrayFlowData, ['FLO_CONDITION' => ''])); + } } } } @@ -1968,6 +1950,8 @@ class BpmnWorkflow extends Project\Bpmn //Map Bpmn-Flows to Workflow-Routes $bwp->mapBpmnFlowsToWorkflowRoutes(); + $bwp->__gatewayToGatewayDeleteCorruptedRecords(); //Delete corrupted records in task and element_task_relation tables + //Return return $result; } @@ -2058,5 +2042,74 @@ class BpmnWorkflow extends Project\Bpmn ); return $diagram; } -} + private function __gatewayToGatewayDeleteCorruptedRecords() + { + //Delete corrupted records in task and element_task_relation tables + + $actionDone = 'GATEWAYTOGATEWAY_DELETE_CORRUPTED_RECORDS'; + + $criteria = new \Criteria('workflow'); + + $criteria->addSelectColumn(\ProcessPeer::PRO_UID); + + $criteria->add(\ProcessPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + $criteria->add(\ProcessPeer::PRO_ACTION_DONE, '%' . $actionDone . '%', \Criteria::LIKE); + + $rsCriteria = \ProcessPeer::doSelectRS($criteria); + + if (!$rsCriteria->next()) { + $arrayTaskUid = []; + + $criteria = new \Criteria('workflow'); + + $criteria->addSelectColumn(\TaskPeer::TAS_UID); + + $criteria->addAlias('RT', \RoutePeer::TABLE_NAME); + $criteria->addAlias('RNT', \RoutePeer::TABLE_NAME); + + $arrayCondition = []; + $arrayCondition[] = [\TaskPeer::TAS_UID, 'RT.TAS_UID', \Criteria::EQUAL]; + $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + + $arrayCondition = []; + $arrayCondition[] = [\TaskPeer::TAS_UID, 'RNT.ROU_NEXT_TASK', \Criteria::EQUAL]; + $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + + $criteria->add(\TaskPeer::PRO_UID, $this->wp->getUid(), \Criteria::EQUAL); + $criteria->add(\TaskPeer::TAS_TYPE, 'GATEWAYTOGATEWAY', \Criteria::EQUAL); + + $criteria->add( + $criteria->getNewCriterion('RT.ROU_UID', null, \Criteria::ISNULL)->addAnd( + $criteria->getNewCriterion('RNT.ROU_UID', null, \Criteria::ISNULL)) + ); + + $rsCriteria = \TaskPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($rsCriteria->next()) { + $record = $rsCriteria->getRow(); + + $arrayTaskUid[] = $record['TAS_UID']; + } + + //Delete Task corrupted + $criteria = new \Criteria('workflow'); + $criteria->add(\TaskPeer::TAS_UID, $arrayTaskUid, \Criteria::IN); + $result = \TaskPeer::doDelete($criteria); + + //Delete ElementTaskRelation corrupted + $criteria = new \Criteria('workflow'); + $criteria->add(\ElementTaskRelationPeer::TAS_UID, $arrayTaskUid, \Criteria::IN); + $result = \ElementTaskRelationPeer::doDelete($criteria); + + //Update Process + $process = \ProcessPeer::retrieveByPk($this->wp->getUid()); + + $arrayActionDone = ($process->getProActionDone() != '')? unserialize($process->getProActionDone()) : []; + $arrayActionDone[] = $actionDone; + + $this->wp->update(['PRO_ACTION_DONE' => serialize($arrayActionDone)]); + } + } +} diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index 4d05ed18b..49be55766 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -25,10 +25,6 @@ class Workflow extends Handler protected $process; protected $proUid; - protected $tasks = array(); - protected $routes = array(); - - public function __construct($data = null) { if (! is_null($data)) { @@ -66,13 +62,13 @@ class Workflow extends Handler $data['PRO_CATEGORY'] = array_key_exists('PRO_CATEGORY', $data) ? $data['PRO_CATEGORY'] : ""; try { - + // Check to make sure that there aren't any html sneaking into process titles. $testTitle = htmlspecialchars($data['PRO_TITLE']); - - if($testTitle != $data['PRO_TITLE']) { - $data['PRO_TITLE'] = $testTitle; + + if($testTitle != $data['PRO_TITLE']) { + $data['PRO_TITLE'] = $testTitle; } self::log("Create Process with data:", $data); @@ -373,7 +369,7 @@ class Workflow extends Handler * @return string * @throws \Exception */ - public function addRoute($fromTasUid, $toTasUid, $type, $condition = "", $default = 0, $eventUidOrigin = "") + public function addRoute($fromTasUid, $toTasUid, $type, $condition = '', $default = 0) { try { $validTypes = array("SEQUENTIAL", "SELECT", "EVALUATE", "PARALLEL", "PARALLEL-BY-EVALUATION", "SEC-JOIN", "DISCRIMINATOR"); @@ -393,21 +389,13 @@ class Workflow extends Handler //$oTasks->deleteAllRoutesOfTask($this->proUid, $fromTasUid); //} - if($toTasUid == "-1"){ - $route = \Route::findOneBy(array( - \RoutePeer::TAS_UID => $fromTasUid, - \RoutePeer::ROU_NEXT_TASK => $toTasUid, - \RoutePeer::ROU_ELEMENT_ORIGIN => $eventUidOrigin - )); - } else { - $route = \Route::findOneBy(array( - \RoutePeer::TAS_UID => $fromTasUid, - \RoutePeer::ROU_NEXT_TASK => $toTasUid - )); - } + $route = \Route::findOneBy([ + \RoutePeer::TAS_UID => $fromTasUid, + \RoutePeer::ROU_NEXT_TASK => $toTasUid + ]); if (is_null($route)) { - $result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default, $eventUidOrigin); + $result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default); } else { $result = $this->updateRoute($route->getRouUid(), array( "TAS_UID" => $fromTasUid, @@ -521,7 +509,7 @@ class Workflow extends Handler } } - private function saveNewPattern($sProcessUID = "", $sTaskUID = "", $sNextTask = "", $sType = "", $condition = "", $default = 0, $elementUidOrigin = "") + private function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $condition = '', $default = 0) { try { self::log("Add Route from task: $sTaskUID -> to task: $sNextTask ($sType)"); @@ -544,7 +532,6 @@ class Workflow extends Handler $aFields["ROU_CASE"] = (int)($aRow["ROUTE_NUMBER"]) + 1; $aFields["ROU_TYPE"] = $sType; $aFields["ROU_DEFAULT"] = $default; - $aFields["ROU_ELEMENT_ORIGIN"] = $elementUidOrigin; if(! empty($condition)) { $aFields['ROU_CONDITION'] = $condition; diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Calendar.php b/workflow/engine/src/ProcessMaker/Services/Api/Calendar.php index 0c31706b4..e12490240 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Calendar.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Calendar.php @@ -14,26 +14,9 @@ class Calendar extends Api private $formatFieldNameInUppercase = false; /** - * Constructor of the class - * - * return void - */ - public function __construct() - { - try { - $user = new \ProcessMaker\BusinessModel\User(); - - $usrUid = $this->getUserId(); - - if (!$user->checkPermission($usrUid, "PM_SETUP")) { - throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION", array($usrUid))); - } - } catch (\Exception $e) { - throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); - } - } - - /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_CALENDAR} * @url GET */ public function index($filter = null, $start = null, $limit = null) @@ -50,6 +33,9 @@ class Calendar extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_CALENDAR} * @url GET /:cal_uid * * @param string $cal_uid {@min 32}{@max 32} @@ -68,6 +54,9 @@ class Calendar extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_CALENDAR} * @url POST * * @param array $request_data @@ -91,6 +80,9 @@ class Calendar extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_CALENDAR} * @url PUT /:cal_uid * * @param string $cal_uid {@min 32}{@max 32} @@ -109,6 +101,9 @@ class Calendar extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_CALENDAR} * @url DELETE /:cal_uid * * @param string $cal_uid {@min 32}{@max 32} diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Light.php b/workflow/engine/src/ProcessMaker/Services/Api/Light.php index c6bb73a20..60ce1074d 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Light.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Light.php @@ -29,6 +29,37 @@ class Light extends Api 'dueDate', 'delRiskDate' ]; + + /** + * Constructor of the class + * + * return void + */ + public function __construct() + { + try { + /** + * The variable $RBAC can be defined as follows: + * + * $RBAC = new \stdClass(); + * $RBAC->aUserInfo['USER_INFO'] = ["USR_UID" => $this->getUserId()]; + * + * Please consider removing the use of this variable in model class, + * or perform a corresponding improvement. + */ + global $RBAC; + if (!isset($RBAC)) { + \Bootstrap::LoadSystem('rbac'); + $RBAC = \RBAC::getSingleton(PATH_DATA, session_id()); + $RBAC->sSystem = 'PROCESSMAKER'; + $RBAC->initRBAC(); + $RBAC->loadUserRolePermission($RBAC->sSystem, $this->getUserId()); + } + } catch (\Exception $e) { + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + } + /** * Get list counters * @return array diff --git a/workflow/engine/src/ProcessMaker/Services/Api/ProcessCategory.php b/workflow/engine/src/ProcessMaker/Services/Api/ProcessCategory.php index 772c1c0ad..d83b2f91e 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/ProcessCategory.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/ProcessCategory.php @@ -21,13 +21,6 @@ class ProcessCategory extends Api public function __construct() { try { - $user = new \ProcessMaker\BusinessModel\User(); - - $usrUid = $this->getUserId(); - - if (!$user->checkPermission($usrUid, "PM_SETUP")) { - throw new \Exception(\G::LoadTranslation("ID_USER_NOT_HAVE_PERMISSION", array($usrUid))); - } $this->category = new \ProcessMaker\BusinessModel\ProcessCategory(); @@ -38,6 +31,9 @@ class ProcessCategory extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES} * @url GET /categories */ public function doGetCategories($filter = null, $start = null, $limit = null) @@ -52,6 +48,9 @@ class ProcessCategory extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES} * @url GET /category/:cat_uid * * @param string $cat_uid {@min 32}{@max 32} @@ -68,6 +67,9 @@ class ProcessCategory extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES} * @url POST /category * * @param array $request_data @@ -88,6 +90,9 @@ class ProcessCategory extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES} * @url PUT /category/:cat_uid * * @param string $cat_uid {@min 32}{@max 32} @@ -103,6 +108,9 @@ class ProcessCategory extends Api } /** + * + * @access protected + * @class AccessControl {@permission PM_SETUP_PROCESS_CATEGORIES} * @url DELETE /category/:cat_uid * * @param string $cat_uid {@min 32}{@max 32} diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php index 136db2822..ae961df42 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php @@ -233,42 +233,42 @@ class ActivityPropertiesStructure public $tas_title; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_description; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_priority_variable; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_derivation_screen_tpl; /** - * @var string {@from body} {@choice TRUE,FALSE} + * @var string {@from body} {@choice TRUE,FALSE} {@required false} */ public $tas_start; /** - * @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE,MULTIPLE_INSTANCE,MULTIPLE_INSTANCE_VALUE_BASED} + * @var string {@from body} {@choice BALANCED,MANUAL,EVALUATE,REPORT_TO,SELF_SERVICE,SELF_SERVICE_EVALUATE,MULTIPLE_INSTANCE,MULTIPLE_INSTANCE_VALUE_BASED} {@required false} */ public $tas_assign_type; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_assign_variable; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_group_variable; /** - * @var string {@from body} + * @var int {@from body} {@required false} */ public $tas_selfservice_time; @@ -278,12 +278,12 @@ class ActivityPropertiesStructure public $tas_selfservice_timeout; /** - * @var string {@from body} {@choice DAYS,,HOURS,MINUTES} + * @var string {@from body} {@choice DAYS,,HOURS,MINUTES} {@required false} */ public $tas_selfservice_time_unit; /** - * @var string {@from body} {@min 0} {@max 32} + * @var string {@from body} {@min 0} {@max 32} {@required false} */ public $tas_selfservice_trigger_uid; @@ -298,22 +298,22 @@ class ActivityPropertiesStructure public $tas_transfer_fly; /** - * @var int {@from body} + * @var int {@from body} {@required false} */ public $tas_duration; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_timeunit; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_type_day; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_calendar; @@ -323,12 +323,12 @@ class ActivityPropertiesStructure public $tas_type; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_title; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_description; @@ -338,22 +338,22 @@ class ActivityPropertiesStructure public $tas_send_last_email; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_subject_message; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_message_type; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_message; /** - * @var string {@from body} + * @var string {@from body} {@required false} */ public $tas_def_message_template; } diff --git a/workflow/engine/templates/reportTables/mainLoad.php b/workflow/engine/templates/reportTables/mainLoad.php deleted file mode 100755 index 3be5caa4c..000000000 --- a/workflow/engine/templates/reportTables/mainLoad.php +++ /dev/null @@ -1,50 +0,0 @@ -xssFilterHard($_GET['gui']); - $gui = $_GET['gui']; -} -?> - - - - - - - \ No newline at end of file diff --git a/workflow/engine/templates/setup/environmentSettings.js b/workflow/engine/templates/setup/environmentSettings.js index cd45a7533..3482e1872 100755 --- a/workflow/engine/templates/setup/environmentSettings.js +++ b/workflow/engine/templates/setup/environmentSettings.js @@ -3,7 +3,7 @@ var fsSamples; var fsNames; var fsDates; var fsCases; -var _firstName, _lastName, _userName, _dateSample; +var _firstName, _lastName, _uName, _dateSample; var txtCasesRefreshTime; @@ -12,7 +12,7 @@ Ext.onReady(function() { _firstName = 'John'; _lastName = 'Deere'; - _userName = 'johndeere'; + _uName = 'johndeere'; _dateSample = '2011-02-17 19:15:38'; fsSample = new Ext.form.FieldSet({ @@ -321,7 +321,7 @@ Ext.onReady(function() { //Load Samples Label loadSamples = function () { - Ext.getCmp("lblFullName").setText(_FNF(_userName, _firstName, _lastName, FORMATS.format)); + Ext.getCmp("lblFullName").setText(_FNF(_uName, _firstName, _lastName, FORMATS.format)); Ext.getCmp("lblDateFormat").setText(_DF(_dateSample, FORMATS.dateFormat)); Ext.getCmp("lblCasesDateFormat").setText(_DF(_dateSample, FORMATS.casesListDateFormat, FORMATS.casesListDateFormat)); //Ext.getCmp("lblCasesRowsList").setText(FORMATS.casesListRowNumber); @@ -338,7 +338,7 @@ changeSettings = function (iType) var f = FORMATS.format; FORMATS.format = cmbUsernameFormat.getValue(); - Ext.getCmp("lblFullName").setText(_FNF(_userName, _firstName, _lastName, cmbUsernameFormat.getValue())); + Ext.getCmp("lblFullName").setText(_FNF(_uName, _firstName, _lastName, cmbUsernameFormat.getValue())); FORMATS.format = f; break; case 2: diff --git a/workflow/public_html/bootstrap.php b/workflow/public_html/bootstrap.php index 755a627c3..fa514db77 100755 --- a/workflow/public_html/bootstrap.php +++ b/workflow/public_html/bootstrap.php @@ -629,15 +629,9 @@ $noLoginFiles[] = 'dbInfo'; $noLoginFiles[] = 'sysLoginVerify'; $noLoginFiles[] = 'processes_Ajax'; - $noLoginFiles[] = 'updateTranslation'; - $noLoginFiles[] = 'autoinstallProcesses'; - $noLoginFiles[] = 'autoinstallPlugins'; - $noLoginFiles[] = 'heartbeatStatus'; $noLoginFiles[] = 'showLogoFile'; $noLoginFiles[] = 'forgotPassword'; $noLoginFiles[] = 'retrivePassword'; - $noLoginFiles[] = 'defaultAjaxDynaform'; - $noLoginFiles[] = 'dynaforms_checkDependentFields'; $noLoginFiles[] = 'genericAjax'; $noLoginFolders[] = 'services'; diff --git a/workflow/public_html/sysGeneric.php b/workflow/public_html/sysGeneric.php index 85c6200c2..a2f76df1b 100755 --- a/workflow/public_html/sysGeneric.php +++ b/workflow/public_html/sysGeneric.php @@ -931,22 +931,13 @@ if (! defined( 'EXECUTE_BY_CRON' )) { $noLoginFiles[] = 'dbInfo'; $noLoginFiles[] = 'sysLoginVerify'; $noLoginFiles[] = 'processes_Ajax'; - $noLoginFiles[] = 'updateTranslation'; - $noLoginFiles[] = 'autoinstallProcesses'; - $noLoginFiles[] = 'autoinstallPlugins'; - $noLoginFiles[] = 'heartbeatStatus'; $noLoginFiles[] = 'showLogoFile'; $noLoginFiles[] = 'forgotPassword'; $noLoginFiles[] = 'retrivePassword'; - $noLoginFiles[] = 'defaultAjaxDynaform'; - $noLoginFiles[] = 'dynaforms_checkDependentFields'; - $noLoginFiles[] = 'fields_Ajax'; - $noLoginFiles[] = 'appFolderAjax'; $noLoginFiles[] = 'steps_Ajax'; $noLoginFiles[] = 'proxyCasesList'; $noLoginFiles[] = 'proxyNewCasesList'; $noLoginFiles[] = 'casesStartPage_Ajax'; - $noLoginFiles[] = 'appProxy'; $noLoginFiles[] = 'cases_Ajax'; $noLoginFiles[] = 'casesList_Ajax'; $noLoginFiles[] = 'proxyReassignCasesList';