From 4949243dd801f72a5109bd1f47d25dadc2c1479e Mon Sep 17 00:00:00 2001 From: Brayan Pereyra Date: Wed, 10 Sep 2025 15:46:57 +0000 Subject: [PATCH] ISSUE-116 Added functionality for plugins with symlink paths --- .../engine/methods/setup/pluginsChange.php | 6 +++--- .../engine/templates/setup/pluginsMain.js | 21 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/workflow/engine/methods/setup/pluginsChange.php b/workflow/engine/methods/setup/pluginsChange.php index 4dccbfc48..e45cb9bf3 100644 --- a/workflow/engine/methods/setup/pluginsChange.php +++ b/workflow/engine/methods/setup/pluginsChange.php @@ -60,9 +60,9 @@ function handlePluginChange() { } // Secure path validation to prevent directory traversal attacks - $pluginFilePath = realpath(PATH_PLUGINS . $pluginFile); - $pluginDirPath = realpath(PATH_PLUGINS . $pluginName); - $pluginsDir = realpath(PATH_PLUGINS); + $pluginFilePath = PATH_PLUGINS . $pluginFile; + $pluginDirPath = PATH_PLUGINS . $pluginName; + $pluginsDir = PATH_PLUGINS; // Ensure plugin file is within the allowed plugins directory if (!$pluginFilePath || strpos($pluginFilePath, $pluginsDir) !== 0) { diff --git a/workflow/engine/templates/setup/pluginsMain.js b/workflow/engine/templates/setup/pluginsMain.js index 5ed5d9cce..0d376dcb8 100644 --- a/workflow/engine/templates/setup/pluginsMain.js +++ b/workflow/engine/templates/setup/pluginsMain.js @@ -260,21 +260,18 @@ function activeDeactive(){ success: function ( result, request ) { var dataResponse = Ext.util.JSON.decode(result.responseText); - if (dataResponse.status) { - if (dataResponse.status == "DISABLED-CODE") { - PMExt.notify(_("ID_PLUGINS"), dataResponse.message, "error", 5); - return; - } - } - - var site = ''; - if (SYS_SKIN.substring(0,2) == 'ux') { + if (typeof(dataResponse.success) != 'undefined' && dataResponse.success == true) { + var site = ''; + if (SYS_SKIN.substring(0,2) == 'ux') { site = PROCESSMAKER_URL + '/main?st=admin&s='+parent._NODE_SELECTED; - } else { + } else { site = PROCESSMAKER_URL + "/setup/main?s="+parent._NODE_SELECTED; + } + parent.parent.location.href = site; + } else { + let errorMsg = dataResponse.error || _('ID_UNEXPECTED_ERROR_OCCURRED_PLEASE'); + PMExt.notify(_("ID_PLUGINS"), errorMsg, "error", 5); } - parent.parent.location.href = site - return; store.reload();