summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-08-13 12:25:13 +0200
committerSimon Rettberg2025-08-13 12:25:13 +0200
commit4a64bdaeb1cb5549d3f9f2b6bc1160af807e82d6 (patch)
tree1bc603d5bd598aa4096c17ac66d6b84267e17e81
parent[eventlog] Add button to create event filter (diff)
downloadslx-admin-4a64bdaeb1cb5549d3f9f2b6bc1160af807e82d6.tar.gz
slx-admin-4a64bdaeb1cb5549d3f9f2b6bc1160af807e82d6.tar.xz
slx-admin-4a64bdaeb1cb5549d3f9f2b6bc1160af807e82d6.zip
[sysconfig] Minor cleanup, response code overrides for audit
-rw-r--r--modules-available/sysconfig/inc/configtgz.inc.php2
-rw-r--r--modules-available/sysconfig/page.inc.php40
2 files changed, 23 insertions, 19 deletions
diff --git a/modules-available/sysconfig/inc/configtgz.inc.php b/modules-available/sysconfig/inc/configtgz.inc.php
index a54aaef9..62017d14 100644
--- a/modules-available/sysconfig/inc/configtgz.inc.php
+++ b/modules-available/sysconfig/inc/configtgz.inc.php
@@ -224,7 +224,7 @@ class ConfigTgz
* @param string $destFile where to store final result
* @return false|array taskmanager task
*/
- private static function recompress(array $files, string $destFile, $parentTask = null)
+ private static function recompress(array $files, string $destFile, ?string $parentTask = null)
{
// Get stuff other modules want to inject
$handler = function($hook) {
diff --git a/modules-available/sysconfig/page.inc.php b/modules-available/sysconfig/page.inc.php
index c9d63a27..49ff4835 100644
--- a/modules-available/sysconfig/page.inc.php
+++ b/modules-available/sysconfig/page.inc.php
@@ -331,7 +331,7 @@ class Page_SysConfig extends Page
if ($task !== false) {
TaskmanagerCallback::addCallback($task, 'ldadpStartup');
}
- Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc);
+ Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc, 200);
}
private function rebuildConfig()
@@ -342,13 +342,16 @@ class Page_SysConfig extends Page
Message::addError('config-invalid', $configid);
Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc, 404);
}
- $ret = $config->generate(false, 500); // TODO
- if ($ret === true)
+ $ret = $config->generate(false, 500);
+ Audit::overrideResponseCode(200);
+ if ($ret === true) {
Message::addSuccess('module-rebuilt', $config->title());
- elseif ($ret === false)
+ } elseif ($ret === false) {
Message::addError('module-rebuild-failed', $config->title());
- else
+ Audit::overrideResponseCode(500);
+ } else {
Message::addInfo('module-rebuilding', $config->title());
+ }
Util::redirect('?do=sysconfig&locationid=' . $this->currentLoc);
}
@@ -365,25 +368,26 @@ class Page_SysConfig extends Page
WHERE moduleid = :moduleid", array('moduleid' => $moduleid));
// Delete DB entries and file
Database::exec("DELETE FROM configtgz_module WHERE moduleid = :moduleid LIMIT 1", array('moduleid' => $moduleid));
- $task = Taskmanager::submit('DeleteFile', array(
- 'file' => $module['filepath']
- ));
- if (isset($task['statusCode']) && $task['statusCode'] === Taskmanager::TASK_WAITING) {
- $task = Taskmanager::waitComplete($task['id']);
- }
- if (!isset($task['statusCode']) || $task['statusCode'] === Taskmanager::TASK_ERROR) {
- Message::addWarning('main.task-error', $task['data']['error']);
- } elseif ($task['statusCode'] === Taskmanager::TASK_FINISHED) {
- Message::addSuccess('module-deleted', $module['title']);
- }
- // Rebuild depending config.tgz
+ // Rebuild depending config.tgz files
foreach ($existing as $crow) {
$config = ConfigTgz::get($crow['configid']);
if ($config !== null) {
$config->generate();
}
}
- Util::redirect('?do=sysconfig');
+ // Delete the module from disk
+ $task = Taskmanager::submit('DeleteFile', array(
+ 'file' => $module['filepath']
+ ));
+ if (Taskmanager::isTask($task)) {
+ $task = Taskmanager::waitComplete($task['id'], 10000);
+ }
+ if (!Taskmanager::isFinished($task)) {
+ Message::addWarning('main.task-error', $task['data']['error'] ?? 'unknown');
+ } else {
+ Message::addSuccess('module-deleted', $module['title']);
+ }
+ Util::redirect('?do=sysconfig', 200);
}
private function downloadModule()