summaryrefslogtreecommitdiffstats
path: root/modules-available/serversetup-bwlp/page.inc.php
diff options
context:
space:
mode:
authorChristian Hofmaier2018-07-24 15:36:48 +0200
committerChristian Hofmaier2018-07-24 15:36:48 +0200
commit60b1fc7329725612fb5e6289295c5efd0f31f36d (patch)
tree04ca772c475aa78ed6675cb5880f65f594f7cbc5 /modules-available/serversetup-bwlp/page.inc.php
parent[ipxe] added add-menu-button, added delete-menu-buttons, fixed bug that timeo... (diff)
downloadslx-admin-60b1fc7329725612fb5e6289295c5efd0f31f36d.tar.gz
slx-admin-60b1fc7329725612fb5e6289295c5efd0f31f36d.tar.xz
slx-admin-60b1fc7329725612fb5e6289295c5efd0f31f36d.zip
[ipxe] Add Bootentry list
Bootentry list with add/edit/delete functionality
Diffstat (limited to 'modules-available/serversetup-bwlp/page.inc.php')
-rw-r--r--modules-available/serversetup-bwlp/page.inc.php47
1 files changed, 46 insertions, 1 deletions
diff --git a/modules-available/serversetup-bwlp/page.inc.php b/modules-available/serversetup-bwlp/page.inc.php
index 6df4c49c..3ef4371f 100644
--- a/modules-available/serversetup-bwlp/page.inc.php
+++ b/modules-available/serversetup-bwlp/page.inc.php
@@ -55,6 +55,11 @@ class Page_ServerSetup extends Page
$this->saveBootEntry();
}
+ if ($action === 'deleteBootentry') {
+ User::assertPermission('ipxe.bootentry.delete');
+ $this->deleteBootEntry();
+ }
+
if ($action === 'savemenu') {
User::assertPermission('ipxe.menu.edit');
$this->saveMenu();
@@ -73,6 +78,7 @@ class Page_ServerSetup extends Page
if (User::hasPermission('ipxe.*')) {
Dashboard::addSubmenu('?do=serversetup&show=menu', Dictionary::translate('submenu_menu', true));
+ Dashboard::addSubmenu('?do=serversetup&show=bootentry', Dictionary::translate('submenu_bootentry', true));
}
if (User::hasPermission('edit.address')) {
Dashboard::addSubmenu('?do=serversetup&show=address', Dictionary::translate('submenu_address', true));
@@ -122,6 +128,10 @@ class Page_ServerSetup extends Page
User::assertPermission('ipxe.menu.view');
$this->showMenuList();
break;
+ case 'bootentry':
+ User::assertPermission('ipxe.bootentry.view');
+ $this->showBootentryList();
+ break;
default:
Util::redirect('?do=serversetup');
break;
@@ -134,6 +144,29 @@ class Page_ServerSetup extends Page
Render::addTemplate('download');
}
+ private function showBootentryList()
+ {
+ $allowEdit = User::hasPermission('ipxe.bootentry.edit');
+ $allowDelete = User::hasPermission('ipxe.bootentry.delete');
+ $allowAdd = 'disabled';
+ if (User::hasPermission('ipxe.bootentry.add')) {
+ $allowAdd = '';
+ }
+
+ $res = Database::simpleQuery("SELECT entryid, hotkey, title FROM serversetup_bootentry");
+ $bootentryTable = [];
+ while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ $bootentryTable[] = $row;
+ }
+
+ Render::addTemplate('bootentry-list', array(
+ 'bootentryTable' => $bootentryTable,
+ 'allowAdd' => $allowAdd,
+ 'allowEdit' => $allowEdit,
+ 'allowDelete' => $allowDelete
+ ));
+ }
+
private function showMenuList()
{
$allowedEdit = User::getAllowedLocations('ipxe.menu.edit');
@@ -288,11 +321,22 @@ class Page_ServerSetup extends Page
return true;
}
+ private function deleteBootEntry() {
+ $id = Request::post('deleteid', false, 'string');
+ if ($id === false) {
+ Message::addError('main.parameter-missing', 'deleteid');
+ return;
+ }
+ Database::exec("DELETE FROM serversetup_bootentry WHERE entryid = :entryid", array("entryid" => $id));
+ // TODO: Redirect to &show=bootentry
+ Message::addSuccess('bootentry-deleted');
+ }
+
private function deleteMenu()
{
$id = Request::post('deleteid', false, 'int');
if ($id === false) {
- Message::addError('main.parameter-missing', 'menuid');
+ Message::addError('main.parameter-missing', 'deleteid');
return;
}
if (!$this->hasMenuPermission($id, 'ipxe.menu.delete')) {
@@ -512,6 +556,7 @@ class Page_ServerSetup extends Page
$params['oldid'] = $oldEntryId;
Database::exec('UPDATE serversetup_bootentry SET entryid = :entryid, title = :title, data = :data
WHERE entryid = :oldid AND builtin = 0', $params);
+ // TODO: Redirect to &show=bootentry
Message::addSuccess('boot-entry-updated', $newId);
}
}