summaryrefslogtreecommitdiffstats
path: root/modules-available/internetaccess
diff options
context:
space:
mode:
authorSimon Rettberg2016-05-03 19:03:09 +0200
committerSimon Rettberg2016-05-03 19:03:09 +0200
commit50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66 (patch)
tree05e99fdffa696434960d7c77966c0bc36d6339e8 /modules-available/internetaccess
parentSecond half of merge.... (diff)
downloadslx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.gz
slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.xz
slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.zip
WIP
Diffstat (limited to 'modules-available/internetaccess')
-rw-r--r--modules-available/internetaccess/config.json4
-rw-r--r--modules-available/internetaccess/lang/de/templates/_page.json14
-rw-r--r--modules-available/internetaccess/lang/de/templates/restart.json5
-rw-r--r--modules-available/internetaccess/lang/en/module.json3
-rw-r--r--modules-available/internetaccess/lang/en/templates/_page.json14
-rw-r--r--modules-available/internetaccess/lang/en/templates/restart.json5
-rw-r--r--modules-available/internetaccess/page.inc.php51
-rw-r--r--modules-available/internetaccess/templates/_page.html40
-rw-r--r--modules-available/internetaccess/templates/restart.html22
9 files changed, 158 insertions, 0 deletions
diff --git a/modules-available/internetaccess/config.json b/modules-available/internetaccess/config.json
new file mode 100644
index 00000000..6c189b63
--- /dev/null
+++ b/modules-available/internetaccess/config.json
@@ -0,0 +1,4 @@
+{
+ "category":"main.content",
+ "enabled":"true"
+}
diff --git a/modules-available/internetaccess/lang/de/templates/_page.json b/modules-available/internetaccess/lang/de/templates/_page.json
new file mode 100644
index 00000000..61e324a8
--- /dev/null
+++ b/modules-available/internetaccess/lang/de/templates/_page.json
@@ -0,0 +1,14 @@
+{
+ "lang_automatic": "Automatisch",
+ "lang_description": "Hier k\u00f6nnen Sie konfigurieren, wie der Satellitenserver auf das Internet zugreifen soll. Dies wird in erster Linie f\u00fcr das Aktualisieren des Systems sowie das Synchronisieren von Virtuellen Maschinen mit dem Zentralserver verwendet. Gegenw\u00e4rtig wird neben Direktzugriff noch SOCKS4\/5 unterst\u00fctzt.",
+ "lang_internetAccess": "Internetzugriff",
+ "lang_manual": "Manuelle Angabe",
+ "lang_manualProxyConfig": "Wenn Sie einen SOCKS-Proxy manuell konfigurieren m\u00f6chten, geben Sie bitte hier die Verbindungsdaten an.",
+ "lang_no": "Keiner",
+ "lang_proxyAddress": "Adresse",
+ "lang_proxyPassword": "Passwort",
+ "lang_proxyPort": "Port",
+ "lang_proxyType": "Proxy Typ",
+ "lang_proxyUsername": "Benutzername",
+ "lang_save": "Speichern"
+} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/de/templates/restart.json b/modules-available/internetaccess/lang/de/templates/restart.json
new file mode 100644
index 00000000..899a1d28
--- /dev/null
+++ b/modules-available/internetaccess/lang/de/templates/restart.json
@@ -0,0 +1,5 @@
+{
+ "lang_restartFailed": "Neustart eines oder mehrerer Dienste fehlgeschlagen!",
+ "lang_restarting": "Neustart",
+ "lang_serviceRestart": "Neustarten der Dienste"
+} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/en/module.json b/modules-available/internetaccess/lang/en/module.json
new file mode 100644
index 00000000..f0c2f72f
--- /dev/null
+++ b/modules-available/internetaccess/lang/en/module.json
@@ -0,0 +1,3 @@
+{
+ "module_name": "Internet Access"
+} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/en/templates/_page.json b/modules-available/internetaccess/lang/en/templates/_page.json
new file mode 100644
index 00000000..c02ca4f5
--- /dev/null
+++ b/modules-available/internetaccess/lang/en/templates/_page.json
@@ -0,0 +1,14 @@
+{
+ "lang_automatic": "Auto",
+ "lang_description": "Here you can configure how the satellite server has to access the internet.",
+ "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",
+ "lang_proxyAddress": "Address",
+ "lang_proxyPassword": "Password",
+ "lang_proxyPort": "Port",
+ "lang_proxyType": "Proxy type",
+ "lang_proxyUsername": "User",
+ "lang_save": "Save"
+} \ No newline at end of file
diff --git a/modules-available/internetaccess/lang/en/templates/restart.json b/modules-available/internetaccess/lang/en/templates/restart.json
new file mode 100644
index 00000000..badad460
--- /dev/null
+++ b/modules-available/internetaccess/lang/en/templates/restart.json
@@ -0,0 +1,5 @@
+{
+ "lang_restartFailed": "Restarting one or more services failed!",
+ "lang_restarting": "Restarting",
+ "lang_serviceRestart": "Restart of services"
+} \ No newline at end of file
diff --git a/modules-available/internetaccess/page.inc.php b/modules-available/internetaccess/page.inc.php
new file mode 100644
index 00000000..b949be26
--- /dev/null
+++ b/modules-available/internetaccess/page.inc.php
@@ -0,0 +1,51 @@
+<?php
+
+class Page_InternetAccess extends Page
+{
+
+ protected function doPreprocess()
+ {
+ User::load();
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('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('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');
+ }
+ }
+ }
+
+ protected function doRender()
+ {
+ if (Request::any('show') === 'update') {
+ $taskids = Session::get('ia-restart');
+ if (is_array($taskids)) {
+ Render::addTemplate('restart', $taskids);
+ } else {
+ Message::addError('invalid-action', 'Restart');
+ }
+ }
+ $data = FileUtil::fileToArray(CONFIG_PROXY_CONF);
+ if (!isset($data['PROXY_CONF']))
+ $data['PROXY_CONF'] = 'AUTO';
+ $data['selected_' . $data['PROXY_CONF']] = 'selected';
+ Render::addTemplate('_page', $data);
+ }
+
+}
diff --git a/modules-available/internetaccess/templates/_page.html b/modules-available/internetaccess/templates/_page.html
new file mode 100644
index 00000000..a2aaddac
--- /dev/null
+++ b/modules-available/internetaccess/templates/_page.html
@@ -0,0 +1,40 @@
+<h1>{{lang_internetAccess}}</h1>
+
+<form action="?do=InternetAccess" method="post">
+ <input type="text" name="prevent_autofill" id="prevent_autofill" value="" style="display:none;">
+ <input type="password" name="password_fake" id="password_fake" value="" style="display:none;">
+ <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>
+ </div>
+</form>
diff --git a/modules-available/internetaccess/templates/restart.html b/modules-available/internetaccess/templates/restart.html
new file mode 100644
index 00000000..effe1feb
--- /dev/null
+++ b/modules-available/internetaccess/templates/restart.html
@@ -0,0 +1,22 @@
+<div class="panel panel-default">
+ <div class="panel-heading">{{lang_serviceRestart}}</div>
+ <div class="panel-body">
+ <div data-tm-id="{{syncid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} syncdaemon</div>
+ <div data-tm-id="{{dmsdid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} dmsd</div>
+ <div data-tm-id="{{ldadpid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} ldadp</div>
+ <div id="restartfailed" class="alert alert-danger" style="display:none">
+ {{lang_restartFailed}}
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript">
+ function restartCb(task)
+ {
+ if (!task || !task.statusCode)
+ return;
+ if (task.statusCode === 'TASK_ERROR') {
+ $('#restartfailed').show('slow');
+ }
+ }
+</script>