diff --git a/core/classes/Core/Util.php b/core/classes/Core/Util.php index 9574c45547..f3d537ada3 100644 --- a/core/classes/Core/Util.php +++ b/core/classes/Core/Util.php @@ -52,9 +52,11 @@ public static function recursiveRemoveDirectory(string $directory): bool // safety precaution, only allow deleting files in "custom", "modules" or "uploads" directory if ( str_contains($directory, 'Core') || - !str_contains($directory, 'custom') || - !str_contains($directory, 'modules') || - !str_contains($directory, 'uploads') + ( + !str_contains(realpath($directory), 'custom') && + !str_contains(realpath($directory), 'modules') && + !str_contains(realpath($directory), 'uploads') + ) ) { return false; } diff --git a/modules/Core/language/en_UK.json b/modules/Core/language/en_UK.json index be76e60130..0be92876d8 100644 --- a/modules/Core/language/en_UK.json +++ b/modules/Core/language/en_UK.json @@ -386,6 +386,7 @@ "admin/module": "Module", "admin/module_disabled": "Module disabled.", "admin/module_enabled": "Module enabled.", + "admin/module_uninstalled": "Module uninstalled.", "admin/module_outdated": "We have detected that this module is intended for Nameless version {{intendedVersion}}, but you are running Nameless version {{actualVersion}}", "admin/module_x": "Module: {{module}}", "admin/modules": "Modules", diff --git a/modules/Core/pages/panel/modules.php b/modules/Core/pages/panel/modules.php index a5eb6ec075..a22ec654e2 100644 --- a/modules/Core/pages/panel/modules.php +++ b/modules/Core/pages/panel/modules.php @@ -339,7 +339,7 @@ } if ($_GET['action'] === 'uninstall') { - // Disable a module + // Uninstall a module if (!isset($_GET['m']) || !is_numeric($_GET['m']) || $_GET['m'] == 1) { die('Invalid module!'); } @@ -357,9 +357,7 @@ } } - DB::getInstance()->delete('modules', [ - 'id' => $_GET['m'], - ]); + DB::getInstance()->delete('modules', ['id', $_GET['m']]); // Cache $cache->setCache('modulescache'); @@ -390,6 +388,7 @@ } Session::flash('admin_modules', $language->get('admin', 'module_uninstalled')); + Redirect::to(URL::build('/panel/core/modules')); } else { Session::flash('admin_modules_error', $language->get('general', 'invalid_token'));