diff options
4 files changed, 27 insertions, 28 deletions
diff --git a/modules-available/serversetup-bwlp/page.inc.php b/modules-available/serversetup-bwlp/page.inc.php index 16d3f8e2..ae709da7 100644 --- a/modules-available/serversetup-bwlp/page.inc.php +++ b/modules-available/serversetup-bwlp/page.inc.php @@ -17,7 +17,8 @@ class Page_ServerSetup extends Page Util::redirect('?do=Main'); } - if (Request::any('action') === 'getimage' && User::hasPermission("download")) { + if (Request::any('action') === 'getimage') { + User::assertPermission("download"); $this->handleGetImage(); } @@ -30,13 +31,15 @@ class Page_ServerSetup extends Page $this->getLocalAddresses(); } - if ($action === 'ip' && User::hasPermission("edit.address")) { + if ($action === 'ip') { + User::assertPermission("edit.address"); // New address is to be set $this->getLocalAddresses(); $this->updateLocalAddress(); } - if ($action === 'ipxe' && User::hasPermission("edit.menu")) { + if ($action === 'ipxe') { + User::assertPermission("edit.menu"); // iPXE stuff changes $this->updatePxeMenu(); } @@ -50,12 +53,18 @@ class Page_ServerSetup extends Page Render::addTemplate('ipxe_update', array('taskid' => $taskid)); } + Permission::addGlobalTags($perms, null, ['edit.menu', 'edit.address', 'download']); + Render::addTemplate('ipaddress', array( 'ips' => $this->taskStatus['data']['addresses'], 'chooseHintClass' => $this->hasIpSet ? '' : 'alert alert-danger', 'editAllowed' => User::hasPermission("edit.address"), + 'perms' => $perms, )); $data = $this->currentMenu; + if (!User::hasPermission('edit.menu')) { + unset($data['masterpasswordclear']); + } if (!isset($data['defaultentry'])) { $data['defaultentry'] = 'net'; } @@ -68,8 +77,7 @@ class Page_ServerSetup extends Page if ($data['defaultentry'] === 'custom') { $data['active-custom'] = 'checked'; } - $data['editAllowed'] = User::hasPermission("edit.menu"); - $data['downloadAllowed'] = User::hasPermission("download"); + $data['perms'] = $perms; Render::addTemplate('ipxe', $data); } diff --git a/modules-available/serversetup-bwlp/style.css b/modules-available/serversetup-bwlp/style.css deleted file mode 100644 index 3aea98af..00000000 --- a/modules-available/serversetup-bwlp/style.css +++ /dev/null @@ -1,12 +0,0 @@ -.disabledPanel { - cursor: not-allowed; -} - -.disabledPanel > .panel-body { - pointer-events: none; - opacity: 0.8; -} - -.panel-footer .btn-group { - cursor: not-allowed; -}
\ No newline at end of file diff --git a/modules-available/serversetup-bwlp/templates/ipaddress.html b/modules-available/serversetup-bwlp/templates/ipaddress.html index e82253f5..8d73dfac 100644 --- a/modules-available/serversetup-bwlp/templates/ipaddress.html +++ b/modules-available/serversetup-bwlp/templates/ipaddress.html @@ -1,4 +1,4 @@ -<div class="panel panel-default {{^editAllowed}}disabledPanel{{/editAllowed}}"> +<div class="panel panel-default"> <div class="panel-heading"> {{lang_bootAddress}} </div> @@ -20,7 +20,10 @@ {{/default}} {{^default}} <td> - <button class="btn btn-primary btn-xs" name="ip" value="{{ip}}"><span class="glyphicon glyphicon-flag"></span> {{lang_set}}</button> + <button class="btn btn-primary btn-xs" name="ip" value="{{ip}}" {{perms.edit.address.disabled}}> + <span class="glyphicon glyphicon-flag"></span> + {{lang_set}} + </button> </td> {{/default}} </tr> diff --git a/modules-available/serversetup-bwlp/templates/ipxe.html b/modules-available/serversetup-bwlp/templates/ipxe.html index e0dc53e5..f4b0b4d3 100644 --- a/modules-available/serversetup-bwlp/templates/ipxe.html +++ b/modules-available/serversetup-bwlp/templates/ipxe.html @@ -3,7 +3,7 @@ <input type="password" name="password_fake" id="password_fake" value="" style="position:absolute;top:-2000px" tabindex="-1"> <input type="hidden" name="action" value="ipxe"> <input type="hidden" name="token" value="{{token}}"> - <div class="panel panel-default {{^editAllowed}}disabledPanel{{/editAllowed}}"> + <div class="panel panel-default"> <div class="panel-heading"> {{lang_bootMenu}} </div> @@ -16,15 +16,15 @@ <div class="form-group"> <strong>{{lang_bootBehavior}}</strong> <div class="radio"> - <input type="radio" name="defaultentry" value="net" {{active-net}} id="id-net"> + <input type="radio" name="defaultentry" value="net" {{active-net}} id="id-net" {{perms.edit.menu.disabled}}> <label for="id-net">bwLehrpool</label> </div> <div class="radio"> - <input type="radio" name="defaultentry" value="hdd" {{active-hdd}} id="id-hdd"> + <input type="radio" name="defaultentry" value="hdd" {{active-hdd}} id="id-hdd" {{perms.edit.menu.disabled}}> <label for="id-hdd">{{lang_localHDD}}</label> </div> <div class="radio"> - <input type="radio" name="defaultentry" value="custom" {{active-custom}} id="id-custom"> + <input type="radio" name="defaultentry" value="custom" {{active-custom}} id="id-custom" {{perms.edit.menu.disabled}}> <label for="id-custom">{{lang_customEntry}} ("custom")</label> </div> </div> @@ -32,7 +32,7 @@ <div class="form-group"> <strong>{{lang_menuDisplayTime}}</strong> <div class="input-group form-narrow"> - <input type="text" class="form-control" name="timeout" value="{{timeout}}" pattern="\d+"> + <input type="text" class="form-control" name="timeout" value="{{timeout}}" pattern="\d+" {{perms.edit.menu.readonly}}> <span class="input-group-addon">{{lang_seconds}}</span> </div> </div> @@ -40,22 +40,22 @@ <div class="form-group"> <strong>{{lang_masterPassword}}</strong> <div class="form-narrow"> - <input type="{{password_type}}" class="form-control" name="masterpassword" value="{{masterpasswordclear}}"> + <input type="{{password_type}}" class="form-control" name="masterpassword" value="{{masterpasswordclear}}" {{perms.edit.menu.readonly}}> </div> <i>{{lang_masterPasswordHelp}}</i> </div> <div class="form-group"> <strong>{{lang_menuCustom}}</strong> <a class="btn btn-default btn-xs" data-toggle="modal" data-target="#help-custom"><span class="glyphicon glyphicon-question-sign"></span></a> - <textarea class="form-control" name="custom" rows="8">{{custom}}</textarea> + <textarea class="form-control" name="custom" rows="8" {{perms.edit.menu.readonly}}>{{custom}}</textarea> </div> </div> <div class="panel-footer"> - <button class="btn btn-primary pull-right" name="action" value="ipxe" {{^editAllowed}}disabled{{/editAllowed}}>{{lang_bootMenuCreate}}</button> + <button class="btn btn-primary pull-right" name="action" value="ipxe" {{perms.edit.menu.disabled}}>{{lang_bootMenuCreate}}</button> <div> <div class="btn-group" role="group"> - <a class="btn btn-default {{^downloadAllowed}}disabled{{/downloadAllowed}}" href="?do=ServerSetup&action=getimage"> + <a class="btn btn-default {{perms.download.disabled}}" href="?do=ServerSetup&action=getimage"> <span class="glyphicon glyphicon-download-alt"></span> {{lang_downloadImage}} </a> |