diff options
Diffstat (limited to 'modules-available/internetaccess')
5 files changed, 67 insertions, 52 deletions
diff --git a/modules-available/internetaccess/lang/en/template-tags.json b/modules-available/internetaccess/lang/en/template-tags.json index 1be62f43..2ac50527 100644 --- a/modules-available/internetaccess/lang/en/template-tags.json +++ b/modules-available/internetaccess/lang/en/template-tags.json @@ -1,7 +1,7 @@ { "lang_automatic": "Auto", "lang_description": "Here you can configure how the satellite server has to access the internet.", - "lang_internetAccess": "Internet access", + "lang_internetAccess": "Internet Access", "lang_manual": "Manual", "lang_manualProxyConfig": "If you want to configure a proxy server manually, please supply the credentials here.", "lang_no": "None", diff --git a/modules-available/internetaccess/page.inc.php b/modules-available/internetaccess/page.inc.php index 246d4477..a92ba3e3 100644 --- a/modules-available/internetaccess/page.inc.php +++ b/modules-available/internetaccess/page.inc.php @@ -6,27 +6,35 @@ class Page_InternetAccess extends Page protected function doPreprocess() { User::load(); - if (!User::hasPermission('superadmin')) { + + if (!User::isLoggedIn()) { Message::addError('main.no-permission'); Util::redirect('?do=Main'); } - if (isset($_POST['PROXY_CONF'])) { - $data = array(); - foreach (array('PROXY_CONF', 'PROXY_ADDR', 'PROXY_PORT', 'PROXY_USERNAME', 'PROXY_PASSWORD') as $key) { - $data[$key] = Request::post($key, ''); - } - if (!FileUtil::arrayToFile(CONFIG_PROXY_CONF, $data)) { - Message::addError('main.error-write', CONFIG_PROXY_CONF); - Util::redirect(); - } else { - Message::addSuccess('settings-updated'); - Taskmanager::release(Taskmanager::submit('ReloadProxy')); - $taskids = array(); - Trigger::stopDaemons(NULL, $taskids); - $taskids = array(); - Trigger::startDaemons(NULL, $taskids); - Session::set('ia-restart', $taskids); - Util::redirect('?do=InternetAccess&show=update'); + + $action = Request::any('action', 'show'); + + if ($action == 'save') { + if (User::hasPermission("configuration.safe")) { + if (isset($_POST['PROXY_CONF'])) { + $data = array(); + foreach (array('PROXY_CONF', 'PROXY_ADDR', 'PROXY_PORT', 'PROXY_USERNAME', 'PROXY_PASSWORD') as $key) { + $data[$key] = Request::post($key, ''); + } + if (!FileUtil::arrayToFile(CONFIG_PROXY_CONF, $data)) { + Message::addError('main.error-write', CONFIG_PROXY_CONF); + Util::redirect(); + } else { + Message::addSuccess('settings-updated'); + Taskmanager::release(Taskmanager::submit('ReloadProxy')); + $taskids = array(); + Trigger::stopDaemons(null, $taskids); + $taskids = array(); + Trigger::startDaemons(null, $taskids); + Session::set('ia-restart', $taskids); + Util::redirect('?do=InternetAccess&show=update'); + } + } } } } @@ -45,6 +53,9 @@ class Page_InternetAccess extends Page if (!isset($data['PROXY_CONF'])) $data['PROXY_CONF'] = 'AUTO'; $data['selected_' . $data['PROXY_CONF']] = 'selected'; + + $data['allowedSave'] = User::hasPermission("configuration.safe"); + Render::addTemplate('_page', $data); } diff --git a/modules-available/internetaccess/permissions/permissions.json b/modules-available/internetaccess/permissions/permissions.json new file mode 100644 index 00000000..6d88ccc5 --- /dev/null +++ b/modules-available/internetaccess/permissions/permissions.json @@ -0,0 +1,3 @@ +{ + "configuration.safe": "Safe new configuration." +}
\ No newline at end of file diff --git a/modules-available/internetaccess/style.css b/modules-available/internetaccess/style.css new file mode 100644 index 00000000..77fa7213 --- /dev/null +++ b/modules-available/internetaccess/style.css @@ -0,0 +1,3 @@ +.input-group-addon { + min-width:150px; +} diff --git a/modules-available/internetaccess/templates/_page.html b/modules-available/internetaccess/templates/_page.html index ac82325c..1413e280 100644 --- a/modules-available/internetaccess/templates/_page.html +++ b/modules-available/internetaccess/templates/_page.html @@ -1,40 +1,38 @@ <h1>{{lang_internetAccess}}</h1> -<form action="?do=InternetAccess" method="post"> +<form action="?do=InternetAccess&action=save" method="post"> <input type="text" name="prevent_autofill" id="prevent_autofill" value="" style="position:absolute;top:-2000px" tabindex="-1"> <input type="password" name="password_fake" id="password_fake" value="" style="position:absolute;top:-2000px" tabindex="-1"> <input type="hidden" name="token" value="{{token}}"> - <div class="panel panel-default"> - <div class="panel-heading">{{lang_internetAccess}}</div> - <div class="panel-body"> - <p>{{lang_description}}</p> - <div class="input-group"> - <span class="input-group-addon slx-ga">{{lang_proxyType}}</span> - <select name="PROXY_CONF" class="form-control"> - <option value="AUTO" {{selected_AUTO}}>{{lang_automatic}} (dns-wpad)</option> - <option value="NO" {{selected_NO}}>{{lang_no}}</option> - <option value="YES" {{selected_YES}}>{{lang_manual}}</option> - </select> - </div> - <br> - <p>{{lang_manualProxyConfig}}</p> - <div class="input-group"> - <span class="input-group-addon slx-ga">{{lang_proxyAddress}} *</span> - <input name="PROXY_ADDR" value="{{PROXY_ADDR}}" type="text" class="form-control"> - </div> - <div class="input-group"> - <span class="input-group-addon slx-ga">{{lang_proxyPort}} *</span> - <input name="PROXY_PORT" value="{{PROXY_PORT}}" type="text" class="form-control"> - </div> - <div class="input-group"> - <span class="input-group-addon slx-ga">{{lang_proxyUsername}}</span> - <input name="PROXY_USERNAME" value="{{PROXY_USERNAME}}" type="text" class="form-control"> - </div> - <div class="input-group"> - <span class="input-group-addon slx-ga">{{lang_proxyPassword}}</span> - <input name="PROXY_PASSWORD" value="{{PROXY_PASSWORD}}" type="{{password_type}}" class="form-control"> - </div> - <button class="btn btn-primary" type="submit">{{lang_save}}</button> - </div> + <p>{{lang_description}}</p> + <div class="input-group"> + <span class="input-group-addon">{{lang_proxyType}}</span> + <select name="PROXY_CONF" class="form-control"> + <option value="AUTO" {{selected_AUTO}}>{{lang_automatic}} (dns-wpad)</option> + <option value="NO" {{selected_NO}}>{{lang_no}}</option> + <option value="YES" {{selected_YES}}>{{lang_manual}}</option> + </select> + </div> + <br> + <p>{{lang_manualProxyConfig}}</p> + <div class="input-group"> + <span class="input-group-addon">{{lang_proxyAddress}} *</span> + <input name="PROXY_ADDR" value="{{PROXY_ADDR}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon">{{lang_proxyPort}} *</span> + <input name="PROXY_PORT" value="{{PROXY_PORT}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon">{{lang_proxyUsername}}</span> + <input name="PROXY_USERNAME" value="{{PROXY_USERNAME}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon">{{lang_proxyPassword}}</span> + <input name="PROXY_PASSWORD" value="{{PROXY_PASSWORD}}" type="{{password_type}}" class="form-control"> + </div> + <br/> + <div class="text-right"> + <button {{^allowedSave}}disabled{{/allowedSave}} class="btn btn-primary" type="submit"><span class="glyphicon glyphicon-floppy-disk"></span> {{lang_save}}</button> </div> </form> |