diff options
| author | Simon Rettberg | 2025-07-24 10:47:15 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2025-07-24 10:47:15 +0200 |
| commit | 54cadc65cc7fee317dcda4aa1121d080654fd8da (patch) | |
| tree | 84f33a86c6cfbd23b3be598d0618a516ca95a262 | |
| parent | [locationinfo] Fix saving DEFAULT panel name; bail out if timeout exceeded (diff) | |
| download | slx-admin-54cadc65cc7fee317dcda4aa1121d080654fd8da.tar.gz slx-admin-54cadc65cc7fee317dcda4aa1121d080654fd8da.tar.xz slx-admin-54cadc65cc7fee317dcda4aa1121d080654fd8da.zip | |
[minilinux/rebootcontrol/statistics] Refactor to better suit audit logging
| -rw-r--r-- | modules-available/minilinux/page.inc.php | 38 | ||||
| -rw-r--r-- | modules-available/minilinux/templates/branches.html | 32 | ||||
| -rw-r--r-- | modules-available/minilinux/templates/filelist.html | 2 | ||||
| -rw-r--r-- | modules-available/rebootcontrol/inc/rebootcontrol.inc.php | 2 | ||||
| -rw-r--r-- | modules-available/rebootcontrol/page.inc.php | 2 | ||||
| -rw-r--r-- | modules-available/statistics/page.inc.php | 5 |
6 files changed, 54 insertions, 27 deletions
diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index 7193658b..f230e800 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -13,13 +13,15 @@ class Page_MiniLinux extends Page } if (Request::isPost()) { - $show = Request::post('show', false, 'string'); - if ($show === 'delete') { + $action = Request::post('action', false, 'string'); + if ($action === 'delete') { $this->deleteVersion(); - } elseif ($show === 'updatesources') { + } elseif ($action === 'updatesources') { $this->updateSources(); - } elseif ($show === 'setdefault') { + } elseif ($action === 'setdefault') { $this->setDefault(); + } else { + ErrorHandler::traceError('Invalid action: ' . $action); } Util::redirect('?do=minilinux'); } @@ -101,11 +103,19 @@ class Page_MiniLinux extends Page protected function doAjax() { User::load(); - $show = Request::post('show', false, 'string'); - if ($show === 'version') { - $this->ajaxVersionDetails(); - } elseif ($show === 'download') { - $this->ajaxDownload(); + if (Request::isPost()) { + $action = Request::post('action', false, 'string'); + if ($action === 'download') { + $this->ajaxDownload(); + } elseif ($action === 'verify') { + $this->ajaxVersionDetails(true); + } + } + if (Request::isGet()) { + $show = Request::get('show', false, 'string'); + if ($show === 'version') { + $this->ajaxVersionDetails(false); + } } } @@ -134,11 +144,10 @@ class Page_MiniLinux extends Page return Render::parse('versionlist', ['versions' => array_values($versions)]); } - private function ajaxVersionDetails() + private function ajaxVersionDetails(bool $verify) { User::assertPermission('view'); - $verify = Request::post('verify', false, 'bool'); - $versionid = Request::post('version', false, 'string'); + $versionid = Request::any('version', false, 'string'); if ($versionid === false) { die('What!'); } @@ -263,7 +272,7 @@ class Page_MiniLinux extends Page Message::addError('no-such-version', $version); Message::renderList(); } else { - $this->ajaxVersionDetails(); + $this->ajaxVersionDetails(false); } } @@ -291,6 +300,7 @@ class Page_MiniLinux extends Page Message::addError('delete-error', $versionid, $task['data']['error']); } else { MiniLinux::setInstalledState($version['versionid'], MiniLinux::INSTALL_MISSING); + Audit::overrideResponseCode(200); Message::addSuccess('version-deleted', $versionid); } } @@ -307,6 +317,7 @@ class Page_MiniLinux extends Page break; } } + Audit::overrideResponseCode(200); } private function setDefault() @@ -321,6 +332,7 @@ class Page_MiniLinux extends Page return; } MiniLinux::setDefaultVersion($version['versionid']); + Audit::overrideResponseCode(200); } } diff --git a/modules-available/minilinux/templates/branches.html b/modules-available/minilinux/templates/branches.html index 54ff7325..922fd8b9 100644 --- a/modules-available/minilinux/templates/branches.html +++ b/modules-available/minilinux/templates/branches.html @@ -54,10 +54,10 @@ // Button magic var addHandlers = function(parent) { parent.find('.btn-verify').click(function() { - loadDetails($(this).data('version'), { show: "version", verify: 1 }); + loadDetails($(this).data('version'), { action: "verify" }); }); parent.find('.btn-download').click(function() { - loadDetails($(this).data('version'), { show: "download" }); + loadDetails($(this).data('version'), { action: "download" }); $(this).remove(); }); }; @@ -70,14 +70,26 @@ c.addClass('slx-fade'); c.find('button, a').addClass('disabled').prop('disabled', true); } - var data = { version: version, token: TOKEN }; - $.extend(data, params); - c.load('?do=minilinux', data, - function () { - c.removeClass('slx-fade'); - addHandlers(c); - c.find('button[data-confirm]').click(slxModalConfirmHandler); - tmInit(); + var q = ''; + params.version = version; + if (params.action) { + // POST + params.token = TOKEN; + } else { + // GET + q = '&' + $.param(params); + params = null; + } + c.load('?do=minilinux' + q, params, + function( response, status, xhr ) { + if (status === 'error') { + c.text('Error: ' + xhr.status + " (" + xhr.statusText + ')'); + } else { + c.removeClass('slx-fade'); + addHandlers(c); + c.find('button[data-confirm]').click(slxModalConfirmHandler); + tmInit(); + } }); }; $('.version-link').click(function(e) { diff --git a/modules-available/minilinux/templates/filelist.html b/modules-available/minilinux/templates/filelist.html index 241d1264..ecb11ed1 100644 --- a/modules-available/minilinux/templates/filelist.html +++ b/modules-available/minilinux/templates/filelist.html @@ -9,7 +9,7 @@ </button> {{/verify_button}} {{#delete_button}} - <button type="submit" name="show" value="delete" class="btn btn-xs btn-danger" + <button type="submit" name="action" value="delete" class="btn btn-xs btn-danger" data-confirm="{{lang_confirmDeleteVersion}}"> <span class="glyphicon glyphicon-trash"></span> {{lang_delete}} diff --git a/modules-available/rebootcontrol/inc/rebootcontrol.inc.php b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php index b6ad7a16..6857482d 100644 --- a/modules-available/rebootcontrol/inc/rebootcontrol.inc.php +++ b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php @@ -459,7 +459,7 @@ class RebootControl if ($presetId !== null) { $q .= '&preset=' . $presetId; } - Util::redirect('?do=rebootcontrol&show=exec&what=prepare&id=' . $q); + Util::redirect('?do=rebootcontrol&show=exec&what=prepare&id=' . $q, 200); } /** diff --git a/modules-available/rebootcontrol/page.inc.php b/modules-available/rebootcontrol/page.inc.php index 9f20431a..bf833e64 100644 --- a/modules-available/rebootcontrol/page.inc.php +++ b/modules-available/rebootcontrol/page.inc.php @@ -99,7 +99,7 @@ class Page_RebootControl extends Page } $task = RebootControl::execute($actualClients, $mode, $minutes); if (Taskmanager::isTask($task)) { - Util::redirect("?do=rebootcontrol&show=task&what=task&taskid=" . $task["id"]); + Util::redirect("?do=rebootcontrol&show=task&what=task&taskid=" . $task["id"], 200); } } diff --git a/modules-available/statistics/page.inc.php b/modules-available/statistics/page.inc.php index 0090ad23..b8717fb8 100644 --- a/modules-available/statistics/page.inc.php +++ b/modules-available/statistics/page.inc.php @@ -143,7 +143,10 @@ class Page_Statistics extends Page if (empty($allowedMachines)) return; $taskid = RebootControl::wakeMachines($allowedMachines); - Util::redirect('?do=rebootcontrol&show=task&what=task&taskid=' . $taskid); + if ($taskid === null) { + ErrorHandler::traceError('Could not invoke task manager to wake machines'); + } + Util::redirect('?do=rebootcontrol&show=task&what=task&taskid=' . $taskid, 200); } /** |
