diff options
author | Simon Rettberg | 2018-02-16 14:45:16 +0100 |
---|---|---|
committer | Simon Rettberg | 2018-02-16 14:45:16 +0100 |
commit | be2712827e4bec519a5704551832acb419f9ec3b (patch) | |
tree | d20e2c785e24d52c6ac723bcba40f1e02c78e9a2 /modules-available/webinterface | |
parent | [vmstore] Simplify permissions (diff) | |
download | slx-admin-be2712827e4bec519a5704551832acb419f9ec3b.tar.gz slx-admin-be2712827e4bec519a5704551832acb419f9ec3b.tar.xz slx-admin-be2712827e4bec519a5704551832acb419f9ec3b.zip |
[webinterface] Use permission helpers; disable inputs individually
Diffstat (limited to 'modules-available/webinterface')
-rw-r--r-- | modules-available/webinterface/page.inc.php | 18 | ||||
-rw-r--r-- | modules-available/webinterface/style.css | 7 | ||||
-rw-r--r-- | modules-available/webinterface/templates/customization.html | 11 | ||||
-rw-r--r-- | modules-available/webinterface/templates/heading.html | 20 | ||||
-rw-r--r-- | modules-available/webinterface/templates/https.html | 102 | ||||
-rw-r--r-- | modules-available/webinterface/templates/passwords.html | 23 |
6 files changed, 103 insertions, 78 deletions
diff --git a/modules-available/webinterface/page.inc.php b/modules-available/webinterface/page.inc.php index 41636c19..806ffd59 100644 --- a/modules-available/webinterface/page.inc.php +++ b/modules-available/webinterface/page.inc.php @@ -16,13 +16,16 @@ class Page_WebInterface extends Page } switch (Request::post('action')) { case 'https': - if (User::hasPermission("edit.https")) $this->actionConfigureHttps(); + User::assertPermission("edit.https"); + $this->actionConfigureHttps(); break; case 'password': - if (User::hasPermission("edit.password")) $this->actionShowHidePassword(); + User::assertPermission("edit.password"); + $this->actionShowHidePassword(); break; case 'customization': - if (User::hasPermission("edit.design")) $this->actionCustomization(); + User::assertPermission("edit.design"); + $this->actionCustomization(); break; } } @@ -123,7 +126,7 @@ class Page_WebInterface extends Page } } $data[$type . 'Selected'] = true; - $data["editAllowed"] = User::hasPermission("edit.https"); + Permission::addGlobalTags($data['perms'], null, ['edit.https']); Render::addTemplate('https', $data); // // Password fields @@ -133,8 +136,11 @@ class Page_WebInterface extends Page $data['selected_show'] = 'checked'; else $data['selected_hide'] = 'checked'; - $data["editAllowed"] = User::hasPermission("edit.password"); + Permission::addGlobalTags($data['perms'], null, ['edit.password']); Render::addTemplate('passwords', $data); + // + // Colors/Prefix + // $data = array('prefix' => Property::get('page-title-prefix')); $data['colors'] = array_map(function ($i) { return array('color' => $i ? '#' . $i : '', 'text' => Render::readableColor($i)); }, array('', 'f00', '0f0', '00f', 'ff0', 'f0f', '0ff', 'fff', '000', 'f90', '09f', '90f', 'f09', '9f0')); @@ -150,7 +156,7 @@ class Page_WebInterface extends Page if ($color) { $data['colors'][] = array('color' => $color, 'selected' => 'selected'); } - $data["editAllowed"] = User::hasPermission("edit.design"); + Permission::addGlobalTags($data['perms'], null, ['edit.design']); Render::addTemplate('customization', $data); } diff --git a/modules-available/webinterface/style.css b/modules-available/webinterface/style.css deleted file mode 100644 index 7b86af56..00000000 --- a/modules-available/webinterface/style.css +++ /dev/null @@ -1,7 +0,0 @@ -.disabledPanel { - cursor: not-allowed; -} -.disabledPanel > .panel-body { - pointer-events: none; - opacity: 0.8; -} diff --git a/modules-available/webinterface/templates/customization.html b/modules-available/webinterface/templates/customization.html index ad57eea7..ea59d562 100644 --- a/modules-available/webinterface/templates/customization.html +++ b/modules-available/webinterface/templates/customization.html @@ -1,21 +1,21 @@ <form action="?do=WebInterface" method="post"> <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="action" value="customization"> - <div class="panel panel-default {{^editAllowed}}disabledPanel{{/editAllowed}}"> + <div class="panel panel-default"> <div class="panel-heading">{{lang_customization}}</div> <div class="panel-body"> <p>{{lang_customizationDesc}}</p> <div> <label> {{lang_pageTitlePrefix}} - <input type="text" class="form-control" name="prefix" value="{{prefix}}"> + <input type="text" class="form-control" name="prefix" value="{{prefix}}" {{perms.edit.design.disabled}}> </label> </div> <div> <label> {{lang_logoBackground}} - <select class="form-control" name="bgcolor"> + <select class="form-control" name="bgcolor" {{perms.edit.design.disabled}}> {{#colors}} <option style="color:{{text}};background:{{color}}" {{selected}}>{{color}}</option> {{/colors}} @@ -23,7 +23,10 @@ </label> </div> <div class="pull-right"> - <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button> + <button type="submit" class="btn btn-primary" {{perms.edit.design.disabled}}> + <span class="glyphicon glyphicon-floppy-disk"></span> + {{lang_save}} + </button> </div> </div> </div> diff --git a/modules-available/webinterface/templates/heading.html b/modules-available/webinterface/templates/heading.html index d68360f1..59a8cf6b 100644 --- a/modules-available/webinterface/templates/heading.html +++ b/modules-available/webinterface/templates/heading.html @@ -1 +1,19 @@ -<h1>{{lang_moduleHeading}}</h1>
\ No newline at end of file +<div class="page-header"> + <h1>{{lang_moduleHeading}}</h1> +</div> +<script><!-- +document.addEventListener('DOMContentLoaded', function () { + var $boxCustom = $('#wcustom'); + $('.row-select').click(function (e) { + if (e.target.tagName === 'INPUT') + return; + $(e.target).closest('.row-select').find('input').click(); + }); + $('#cert-options').find('input').change(function(e) { + $boxCustom.toggle(e.target.id === 'mcustom'); + }); + if ($('#mcustom').is(':checked')) { + $boxCustom.show(); + } +}); +//--></script>
\ No newline at end of file diff --git a/modules-available/webinterface/templates/https.html b/modules-available/webinterface/templates/https.html index a212cce3..ad36e9e5 100644 --- a/modules-available/webinterface/templates/https.html +++ b/modules-available/webinterface/templates/https.html @@ -1,7 +1,7 @@ <form action="?do=WebInterface" method="post"> <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="action" value="https"> - <div class="panel panel-default {{^editAllowed}}disabledPanel{{/editAllowed}}"> + <div class="panel panel-default"> <div class="panel-heading">{{lang_httpsSettings}}</div> <div class="panel-body"> <p>{{lang_httpsDescription}}</p> @@ -25,46 +25,45 @@ <p>{{lang_suppliedSelected}}</p> {{/suppliedSelected}} </div> - {{#httpsEnabled}} - <div class="input-group" onclick="$('#moff').prop('checked', true); - $('#wcustom').hide()"> - <span class="input-group-addon"> - <div class="radio"> - <input id="moff" type="radio" name="mode" value="off"> - <label></label> - </div> - </span> - <span class="form-control"> - {{lang_noHttps}} - </span> - </div> - {{/httpsEnabled}} - <div class="input-group" onclick="$('#mrandom').prop('checked', true); - $('#wcustom').hide()"> - <span class="input-group-addon"> - <div class="radio"> - <input id="mrandom" type="radio" name="mode" value="random"> - <label></label> - </div> - </span> - <span class="form-control"> - {{lang_randomCert}} - </span> - </div> - <div class="input-group" onclick="$('#mcustom').prop('checked', true); - $('#wcustom').show()"> - <span class="input-group-addon"> - <div class="radio"> - <input id="mcustom" type="radio" name="mode" value="custom"> - <label></label> - </div> - </span> - <span class="form-control"> - {{lang_customCert}} - </span> + <div id="cert-options"> + {{#httpsEnabled}} + <div class="input-group row-select"> + <span class="input-group-addon"> + <span class="radio"> + <input id="moff" type="radio" name="mode" value="off" {{perms.edit.https.disabled}}> + <label></label> + </span> + </span> + <span class="form-control"> + {{lang_noHttps}} + </span> + </div> + {{/httpsEnabled}} + <div class="input-group row-select"> + <span class="input-group-addon"> + <span class="radio"> + <input id="mrandom" type="radio" name="mode" value="random" {{perms.edit.https.disabled}}> + <label></label> + </span> + </span> + <span class="form-control"> + {{lang_randomCert}} + </span> + </div> + <div class="input-group row-select"> + <span class="input-group-addon"> + <span class="radio"> + <input id="mcustom" type="radio" name="mode" value="custom" {{perms.edit.https.disabled}}> + <label></label> + </span> + </span> + <span class="form-control"> + {{lang_customCert}} + </span> + </div> </div> - <div class="well well-sm" style="display:none" id="wcustom"> + <div class="well well-sm collapse" id="wcustom"> {{lang_certificate}} <pre class="small"> -----BEGIN CERTIFICATE----- @@ -87,32 +86,35 @@ MIIFfTCCA... </div> <br> - <div class="input-group"> + <div class="input-group row-select"> <span class="input-group-addon"> - <div class="checkbox"> - <input id="httpsredirect" type="checkbox" name="httpsredirect" value="on" {{redirect_checked}}> + <span class="checkbox"> + <input id="httpsredirect" type="checkbox" name="httpsredirect" value="on" {{redirect_checked}} {{perms.edit.https.disabled}}> <label></label> - </div> + </span> </span> - <span class="form-control" onclick="$('#httpsredirect').prop('checked', !$('#httpsredirect').prop('checked'))"> + <span class="form-control"> {{lang_httpsRedirect}} </span> </div> - <div class="input-group"> + <div class="input-group row-select"> <span class="input-group-addon"> - <div class="checkbox"> - <input id="usehsts" type="checkbox" name="usehsts" value="on" {{hsts_checked}}> + <span class="checkbox"> + <input id="usehsts" type="checkbox" name="usehsts" value="on" {{hsts_checked}} {{perms.edit.https.disabled}}> <label></label> - </div> + </span> </span> - <span class="form-control" onclick="$('#usehsts').prop('checked', !$('#usehsts').prop('checked'))"> + <span class="form-control"> {{lang_useHsts}} </span> </div> <br> <div class="pull-right"> - <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button> + <button type="submit" class="btn btn-primary" {{perms.edit.https.disabled}}> + <span class="glyphicon glyphicon-floppy-disk"></span> + {{lang_save}} + </button> </div> </div> </div> diff --git a/modules-available/webinterface/templates/passwords.html b/modules-available/webinterface/templates/passwords.html index 1d73c172..b61c8ce9 100644 --- a/modules-available/webinterface/templates/passwords.html +++ b/modules-available/webinterface/templates/passwords.html @@ -1,27 +1,27 @@ <form action="?do=WebInterface" method="post"> <input type="hidden" name="token" value="{{token}}"> <input type="hidden" name="action" value="password"> - <div class="panel panel-default {{^editAllowed}}disabledPanel{{/editAllowed}}"> + <div class="panel panel-default"> <div class="panel-heading">{{lang_passwordFields}}</div> <div class="panel-body"> <p>{{lang_passwordsDescription}}</p> - <div class="input-group" onclick="$('#pmshow').prop('checked', true)"> + <div class="input-group row-select"> <span class="input-group-addon"> - <div class="radio"> - <input id="pmshow" type="radio" name="mode" value="show" {{selected_show}}> + <span class="radio"> + <input id="pmshow" type="radio" name="mode" value="show" {{selected_show}} {{perms.edit.password.disabled}}> <label></label> - </div> + </span> </span> <span class="form-control"> {{lang_showPasswords}} </span> </div> - <div class="input-group" onclick="$('#pmhide').prop('checked', true)"> + <div class="input-group row-select"> <span class="input-group-addon"> - <div class="radio"> - <input id="pmhide" type="radio" name="mode" value="hide" {{selected_hide}}> + <span class="radio"> + <input id="pmhide" type="radio" name="mode" value="hide" {{selected_hide}} {{perms.edit.password.disabled}}> <label></label> - </div> + </span> </span> <span class="form-control"> {{lang_hidePasswords}} @@ -29,7 +29,10 @@ </div> <br> <div class="pull-right"> - <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button> + <button type="submit" class="btn btn-primary" {{perms.edit.password.disabled}}> + <span class="glyphicon glyphicon-floppy-disk"></span> + {{lang_save}} + </button> </div> </div> </div> |