From e32cc22b6efa1bebe057eba42a596bc367b6c197 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 11 Dec 2018 17:47:35 +0100 Subject: [serversetup-bwlp] Simplify permissions --- .../serversetup-bwlp/lang/de/permissions.json | 7 +++++- modules-available/serversetup-bwlp/page.inc.php | 26 +++++----------------- .../serversetup-bwlp/permissions/permissions.json | 12 ---------- .../serversetup-bwlp/templates/bootentry-list.html | 16 +++++++------ 4 files changed, 20 insertions(+), 41 deletions(-) diff --git a/modules-available/serversetup-bwlp/lang/de/permissions.json b/modules-available/serversetup-bwlp/lang/de/permissions.json index 98baec3c..a6cdbce2 100644 --- a/modules-available/serversetup-bwlp/lang/de/permissions.json +++ b/modules-available/serversetup-bwlp/lang/de/permissions.json @@ -2,5 +2,10 @@ "access-page": "Seite sehen.", "download": "USB-Image herunterladen.", "edit.address": "Boot-Adresse des Servers ausw\u00e4hlen.", - "edit.menu": "Bootmen\u00fc anpassen." + "edit.menu": "Bootmen\u00fc anpassen.", + "ipxe.bootentry.edit": "Einen Boot-Eintrag bearbeiten.", + "ipxe.bootentry.view": "Liste aller Boot-Eintr\u00e4ge sehen.", + "ipxe.localboot.edit": "Ausnahmeliste f\u00fcr Localboot-Modus bearbeiten.", + "ipxe.menu.edit": "Men\u00fc editieren.", + "ipxe.menu.view": "Liste der Men\u00fcs sehen." } \ No newline at end of file diff --git a/modules-available/serversetup-bwlp/page.inc.php b/modules-available/serversetup-bwlp/page.inc.php index 8cd20c75..f8a21227 100644 --- a/modules-available/serversetup-bwlp/page.inc.php +++ b/modules-available/serversetup-bwlp/page.inc.php @@ -73,7 +73,7 @@ class Page_ServerSetup extends Page } if ($action === 'deleteBootentry') { - User::assertPermission('ipxe.bootentry.delete'); + User::assertPermission('ipxe.bootentry.edit'); $this->deleteBootEntry(); } @@ -83,7 +83,7 @@ class Page_ServerSetup extends Page } if ($action === 'deleteMenu') { - User::assertPermission('ipxe.menu.delete'); + // Permcheck in function $this->deleteMenu(); } @@ -173,13 +173,8 @@ class Page_ServerSetup extends Page 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"); + $res = Database::simpleQuery("SELECT entryid, hotkey, title, builtin FROM serversetup_bootentry"); $bootentryTable = []; while ($row = $res->fetch(PDO::FETCH_ASSOC)) { $bootentryTable[] = $row; @@ -187,16 +182,13 @@ class Page_ServerSetup extends Page Render::addTemplate('bootentry-list', array( 'bootentryTable' => $bootentryTable, - 'allowAdd' => $allowAdd, 'allowEdit' => $allowEdit, - 'allowDelete' => $allowDelete )); } private function showMenuList() { $allowedEdit = User::getAllowedLocations('ipxe.menu.edit'); - $allowedDelete = User::getAllowedLocations('ipxe.menu.delete'); // TODO Permission::addGlobalTags($perms, null, ['edit.menu', 'edit.address', 'download']); @@ -207,24 +199,16 @@ class Page_ServerSetup extends Page if (empty($row['locations'])) { $locations = []; $row['allowEdit'] = in_array(0, $allowedEdit); - $row['allowDelete'] = in_array(0, $allowedDelete); } else { $locations = explode(',', $row['locations']); $row['allowEdit'] = empty(array_diff($locations, $allowedEdit)); - $row['allowDelete'] = empty(array_diff($locations, $allowedDelete)); } $row['locationCount'] = empty($locations) ? '' : count($locations); $menuTable[] = $row; } - $allowAddMenu = 'disabled'; - if (User::hasPermission('ipxe.menu.add')) { - $allowAddMenu = ''; - } - Render::addTemplate('menu-list', array( 'menuTable' => $menuTable, - 'allowAddMenu' => $allowAddMenu, 'showSetDefault' => User::hasPermission('ipxe.menu.edit', 0) )); } @@ -437,8 +421,8 @@ class Page_ServerSetup extends Page Message::addError('main.parameter-missing', 'deleteid'); return; } - if (!$this->hasMenuPermission($id, 'ipxe.menu.delete')) { - Message::addError('locations.no-permission-location', 'TODO'); + if (!$this->hasMenuPermission($id, 'ipxe.menu.edit')) { + Message::addError('locations.no-permission-location', $id); return; } Database::exec("DELETE FROM serversetup_menu WHERE menuid = :menuid", array("menuid" => $id)); diff --git a/modules-available/serversetup-bwlp/permissions/permissions.json b/modules-available/serversetup-bwlp/permissions/permissions.json index 5b97e5c2..aa2aa001 100644 --- a/modules-available/serversetup-bwlp/permissions/permissions.json +++ b/modules-available/serversetup-bwlp/permissions/permissions.json @@ -14,24 +14,12 @@ "ipxe.bootentry.edit": { "location-aware": false }, - "ipxe.bootentry.add": { - "location-aware": false - }, - "ipxe.bootentry.delete": { - "location-aware": false - }, "ipxe.menu.view": { "location-aware": false }, "ipxe.menu.edit": { "location-aware": true }, - "ipxe.menu.add": { - "location-aware": false - }, - "ipxe.menu.delete": { - "location-aware": true - }, "ipxe.localboot.edit": { "location-aware": false } diff --git a/modules-available/serversetup-bwlp/templates/bootentry-list.html b/modules-available/serversetup-bwlp/templates/bootentry-list.html index f9e881b2..929b8c47 100644 --- a/modules-available/serversetup-bwlp/templates/bootentry-list.html +++ b/modules-available/serversetup-bwlp/templates/bootentry-list.html @@ -24,21 +24,23 @@ {{/allowEdit}} - {{#allowDelete}} - - {{/allowDelete}} + {{/allowEdit}} {{/bootentryTable}}
- - - {{lang_addBootentry}} - + {{#allowEdit}} + + + {{lang_addBootentry}} + + {{/allowEdit}}
-- cgit v1.2.3-55-g7522