summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-12-11 17:47:35 +0100
committerSimon Rettberg2018-12-11 17:47:35 +0100
commite32cc22b6efa1bebe057eba42a596bc367b6c197 (patch)
tree3d79141033959ee56df30bc2733e6359ff5a08a8
parent[serversetup-bwlp] Fix new menu entries not using the preset titles (diff)
downloadslx-admin-e32cc22b6efa1bebe057eba42a596bc367b6c197.tar.gz
slx-admin-e32cc22b6efa1bebe057eba42a596bc367b6c197.tar.xz
slx-admin-e32cc22b6efa1bebe057eba42a596bc367b6c197.zip
[serversetup-bwlp] Simplify permissions
-rw-r--r--modules-available/serversetup-bwlp/lang/de/permissions.json7
-rw-r--r--modules-available/serversetup-bwlp/page.inc.php26
-rw-r--r--modules-available/serversetup-bwlp/permissions/permissions.json12
-rw-r--r--modules-available/serversetup-bwlp/templates/bootentry-list.html16
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}}
</td>
<td align="center">
- {{#allowDelete}}
- <button type="button" class="btn btn-xs btn-danger" data-toggle="modal" data-target="#deleteModal" onclick="deleteBootentry('{{entryid}}')">
+ {{#allowEdit}}
+ <button type="button" class="btn btn-xs btn-danger" data-toggle="modal" data-target="#deleteModal" onclick="deleteBootentry('{{entryid}}', '{{builtin}}')">
<span class="glyphicon glyphicon-trash"></span>
</button>
- {{/allowDelete}}
+ {{/allowEdit}}
</td>
</tr>
{{/bootentryTable}}
</tbody>
</table>
<div class="pull-right">
- <a href="?do=serversetup&amp;show=editbootentry" class="btn btn-success {{allowAdd}}">
- <span class="glyphicon glyphicon-plus"></span>
- {{lang_addBootentry}}
- </a>
+ {{#allowEdit}}
+ <a href="?do=serversetup&amp;show=editbootentry" class="btn btn-success">
+ <span class="glyphicon glyphicon-plus"></span>
+ {{lang_addBootentry}}
+ </a>
+ {{/allowEdit}}
</div>
<!-- Modals -->