summaryrefslogtreecommitdiffstats
path: root/modules-available/internetaccess
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/internetaccess')
-rw-r--r--modules-available/internetaccess/lang/en/template-tags.json2
-rw-r--r--modules-available/internetaccess/page.inc.php47
-rw-r--r--modules-available/internetaccess/permissions/permissions.json3
-rw-r--r--modules-available/internetaccess/style.css3
-rw-r--r--modules-available/internetaccess/templates/_page.html64
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&amp;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>