From e75d7e46863bd5e787243405fb61159350abfeea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Aug 2019 14:51:18 +0200 Subject: [PATCH] Fix test on uploaded modules --- htdocs/admin/modules.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 5fd40fb032a..65d7ea6d216 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -130,13 +130,13 @@ if ($action=='install') } else { - if (! preg_match('/\.zip$/i', $original_file)) + if (! $error && ! preg_match('/\.zip$/i', $original_file)) { $langs->load("errors"); setEventMessages($langs->trans("ErrorFileMustBeADolibarrPackage", $original_file), null, 'errors'); $error++; } - if (! preg_match('/module_.*\-[\d]+\.[\d]+.*$/i', $original_file)) + if (! $error && ! preg_match('/^(module[a-zA-Z0-9]*|theme)_.*\-([0-9][0-9\.]*)\.zip$/i', $original_file)) { $langs->load("errors"); setEventMessages($langs->trans("ErrorFilenameDosNotMatchDolibarrPackageRules", $original_file, 'module_*-x.y*.zip'), null, 'errors'); @@ -180,13 +180,13 @@ if ($action=='install') { // Now we move the dir of the module $modulename=preg_replace('/module_/', '', $original_file); - $modulename=preg_replace('/\-[\d]+\.[\d]+.*$/', '', $modulename); + $modulename=preg_replace('/\-([0-9][0-9\.]*)\.zip$/i', '', $modulename); // Search dir $modulename - $modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulename; + $modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/'.$modulename; // Example .../mymodule //var_dump($modulenamedir); if (! dol_is_dir($modulenamedir)) { - $modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulename; + $modulenamedir=$conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulename; // Example .../htdocs/mymodule //var_dump($modulenamedir); if (! dol_is_dir($modulenamedir)) { @@ -195,10 +195,17 @@ if ($action=='install') } } + if (! $error) + { + // TODO Make more test + + } + + // Now we install the module if (! $error) { //var_dump($dirins); - @dol_delete_dir_recursive($dirins.'/'.$modulename); + @dol_delete_dir_recursive($dirins.'/'.$modulename); // delete the zip file dol_syslog("Uncompress of module file is a success. We copy it from ".$modulenamedir." into target dir ".$dirins.'/'.$modulename); $result=dolCopyDir($modulenamedir, $dirins.'/'.$modulename, '0444', 1); if ($result <= 0)