From b842063f40a43d0233fcc6a1461083f0784ab6ef Mon Sep 17 00:00:00 2001 From: jennylee Date: Tue, 30 Apr 2013 16:28:12 -0400 Subject: [PATCH 1/4] BUG 11423 Errors when restoring a ws with the Enterprise plugin enabled. SOLVED Was added some validations to make the backup and the restore functions work fine when it is enabled the Enterprise plugin. --- gulliver/thirdparty/pear/Archive/Tar.php | 14 ++++++++++---- workflow/engine/classes/class.wsTools.php | 6 ++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gulliver/thirdparty/pear/Archive/Tar.php b/gulliver/thirdparty/pear/Archive/Tar.php index 61eff98e6..ecd769eea 100755 --- a/gulliver/thirdparty/pear/Archive/Tar.php +++ b/gulliver/thirdparty/pear/Archive/Tar.php @@ -917,6 +917,12 @@ class Archive_Tar extends PEAR if ($v_filename == '') continue; + if($v_filename == $p_remove_dir.'/plugin.singleton') + continue; + + if($v_filename == $p_remove_dir.'/ee') + continue; + // ----- ignore files and directories matching the ignore regular expression if ($this->_ignore_regexp && preg_match($this->_ignore_regexp, '/'.$v_filename)) { $this->_warning("File '$v_filename' ignored"); @@ -1090,12 +1096,12 @@ class Archive_Tar extends PEAR $v_magic = 'ustar '; $v_version = ' '; - + if (function_exists('posix_getpwuid')) { $userinfo = posix_getpwuid($v_info[4]); $groupinfo = posix_getgrgid($v_info[5]); - + $v_uname = $userinfo['name']; $v_gname = $groupinfo['name']; } @@ -1179,7 +1185,7 @@ class Archive_Tar extends PEAR { $userinfo = posix_getpwuid($p_uid); $groupinfo = posix_getgrgid($p_gid); - + $v_uname = $userinfo['name']; $v_gname = $groupinfo['name']; } @@ -1188,7 +1194,7 @@ class Archive_Tar extends PEAR $v_uname = ''; $v_gname = ''; } - + $v_devmajor = ''; $v_devminor = ''; diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index 8513f4349..11c5d1dfa 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1099,6 +1099,12 @@ class workspaceTools foreach ($metadata->directories as $dir) { CLI::logging("+> Restoring directory '$dir'\n"); + if(file_exists("$tempDirectory/$dir" . "/ee")) { + G::rm_dir("$tempDirectory/$dir" . "/ee"); + } + if(file_exists("$tempDirectory/$dir" . "/plugin.singleton")) { + G::rm_dir("$tempDirectory/$dir" . "/plugin.singleton"); + } if (!rename("$tempDirectory/$dir", $workspace->path)) { throw new Exception("There was an error copying the backup files ($tempDirectory/$dir) to the workspace directory {$workspace->path}."); } From b43760f9b188a79bb431ef7a80f34a61d03dc833 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 2 May 2013 10:13:43 -0400 Subject: [PATCH 2/4] BUG 11407 "No muestra el dashlet PM Table cuando se asigna..." SOLVED - In ADMIN>Settings>Dashboards assignment does not respect the "Assign To" for groups and departments - Solved problem, small improvement in validation * Available from version ProcessMaker-2.5 --- workflow/engine/classes/class.pmDashlet.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.pmDashlet.php b/workflow/engine/classes/class.pmDashlet.php index 00b7c080e..270ead458 100644 --- a/workflow/engine/classes/class.pmDashlet.php +++ b/workflow/engine/classes/class.pmDashlet.php @@ -272,7 +272,7 @@ class PMDashlet extends DashletInstance implements DashletInterface if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - if (!(self::verifyPluginDashlet($row['DAS_CLASS']))) { + if (self::verifyPluginDashlet($row["DAS_CLASS"])) { $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); @@ -303,7 +303,7 @@ class PMDashlet extends DashletInstance implements DashletInterface if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - if (!(self::verifyPluginDashlet($row['DAS_CLASS']))) { + if (self::verifyPluginDashlet($row["DAS_CLASS"])) { $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); From cfb4f1f639250d79794d0697d7203a5c188ecad5 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 2 May 2013 12:51:36 -0400 Subject: [PATCH 3/4] BUG 0000 "Safe upgrade for JavaScript files" SOLVED - Added validation, when translation file is "translation.enterprise.xxxxx.js" * Available from version ProcessMaker-2.5 --- gulliver/system/class.bootstrap.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index 9adb3743e..131f25b2f 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -580,9 +580,15 @@ class Bootstrap if (strtolower($typefile) == 'js' && $typearray[0] == 'translation') { Bootstrap::sendHeaders($filename, 'text/javascript', $download, $downloadFileName); - $filename = str_replace(implode(".", $typearray), $typearray[0] . "." . $typearray[1] . "." . $typearray[count($typearray) - 1], $filename); + if ($typearray[1] != "enterprise") { + $arrayAux = array($typearray[0], $typearray[1], $typearray[count($typearray) - 1]); - $output = Bootstrap::streamJSTranslationFile($filename, $typearray[1]); + $filename = str_replace(implode(".", $typearray), implode(".", $arrayAux), $filename); + + $typearray = $arrayAux; + } + + $output = Bootstrap::streamJSTranslationFile($filename, $typearray[count($typearray) - 2]); echo $output; From 3591165f6a62971e917322305adc4115c7d83993 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 2 May 2013 13:16:01 -0400 Subject: [PATCH 4/4] Disabling the "Browse Library" button (deprecated) --- workflow/engine/templates/processes/main.js | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 481177f54..ece257220 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -263,16 +263,7 @@ Ext.onReady(function(){ importProcessGlobal.processFileType = "pm"; importProcess(); } - }, - !PARTNER_FLAG ? - [{ - text: _('ID_BROWSE_LIBRARY'), - iconCls: 'button_menu_ext ss_sprite ss_world', - //icon: '/images/icon-pmwebservices.png', - handler: browseLibrary - } - ] : [], - { + },{ xtype: 'tbfill' },{ xtype: 'tbseparator' @@ -1095,10 +1086,6 @@ importProcess = function() w.show(); } -browseLibrary = function(){ - window.location = 'processes_Library'; -} - function activeDeactive(){ var rows = processesGrid.getSelectionModel().getSelections();