summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-07-24 10:47:15 +0200
committerSimon Rettberg2025-07-24 10:47:15 +0200
commit54cadc65cc7fee317dcda4aa1121d080654fd8da (patch)
tree84f33a86c6cfbd23b3be598d0618a516ca95a262
parent[locationinfo] Fix saving DEFAULT panel name; bail out if timeout exceeded (diff)
downloadslx-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.php38
-rw-r--r--modules-available/minilinux/templates/branches.html32
-rw-r--r--modules-available/minilinux/templates/filelist.html2
-rw-r--r--modules-available/rebootcontrol/inc/rebootcontrol.inc.php2
-rw-r--r--modules-available/rebootcontrol/page.inc.php2
-rw-r--r--modules-available/statistics/page.inc.php5
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);
}
/**