summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-05-26 18:09:17 +0200
committerSimon Rettberg2025-05-26 18:09:17 +0200
commitfa6cb9aab5366f3f6ada28882865eacaeb7a0ef6 (patch)
tree9a9255437c3d24492f7235918f1d63fe66cc388d
parent[syslog/eventlog] Allow creating filter rule based on client log entry (diff)
downloadslx-admin-fa6cb9aab5366f3f6ada28882865eacaeb7a0ef6.tar.gz
slx-admin-fa6cb9aab5366f3f6ada28882865eacaeb7a0ef6.tar.xz
slx-admin-fa6cb9aab5366f3f6ada28882865eacaeb7a0ef6.zip
[serversetup-bwlp-ipxe] Set menu timeout to 1 second in exam mode
-rw-r--r--modules-available/serversetup-bwlp-ipxe/api.inc.php7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules-available/serversetup-bwlp-ipxe/api.inc.php b/modules-available/serversetup-bwlp-ipxe/api.inc.php
index dc78f481..2a6460d5 100644
--- a/modules-available/serversetup-bwlp-ipxe/api.inc.php
+++ b/modules-available/serversetup-bwlp-ipxe/api.inc.php
@@ -41,12 +41,17 @@
$menu = IPxeMenu::forClient($builder->clientIp(), $builder->uuid());
}
$data = null;
- if ($menu->itemCount() === 1 && $menu->timeoutMs() === 0) {
+ // In exam mode, either skip menu if only one entry, or shorten timeout to 1 second
+ $isExamMode = Module::isAvailable('exams')
+ && Exams::isInExamMode([Location::getFromIpAndUuid($builder->clientIp(), $builder->uuid())]);
+ if ($menu->itemCount() === 1 && ($menu->timeoutMs === 0 || $isExamMode)) {
// One entry, no timeout -- direct boot
$entry = $menu->defaultEntry();
if ($entry !== null) {
$data = $builder->getMenuEntry($entry);
}
+ } elseif ($isExamMode) {
+ $menu->timeoutMs = 1000;
}
if ($data === null) {
// Show menu