summaryrefslogtreecommitdiffstats
path: root/modules/sysconfig.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-05 20:25:55 +0100
committerSimon Rettberg2013-11-05 20:25:55 +0100
commite277baed387b642bb7e6707b49e55da4719a9c79 (patch)
tree350343881ddc35fe53862e971506bc405a9a7fad /modules/sysconfig.inc.php
parentTolle neue APIs Sachen (diff)
downloadslx-admin-e277baed387b642bb7e6707b49e55da4719a9c79.tar.gz
slx-admin-e277baed387b642bb7e6707b49e55da4719a9c79.tar.xz
slx-admin-e277baed387b642bb7e6707b49e55da4719a9c79.zip
Working on download of remote configs
Diffstat (limited to 'modules/sysconfig.inc.php')
-rw-r--r--modules/sysconfig.inc.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php
new file mode 100644
index 00000000..f8e6c6ad
--- /dev/null
+++ b/modules/sysconfig.inc.php
@@ -0,0 +1,58 @@
+<?php
+
+User::load();
+
+function render_module()
+{
+ if (!isset($_REQUEST['action'])) $_REQUEST['action'] = 'list';
+ switch ($_REQUEST['action']) {
+ case 'remotelist':
+ list_remote_configs();
+ break;
+ case 'list':
+ list_configs();
+ break;
+ default:
+ Message::addError('invalid-action', $_REQUEST['action']);
+ break;
+ }
+}
+
+function list_configs()
+{
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('no-permission');
+ return;
+ }
+ $files = array();
+ foreach (glob(CONFIG_TGZ_LIST_DIR . '/*.tgz') as $file) {
+ $files[] = array(
+ 'file' => $file
+ );
+ }
+ Render::addTemplate('tgz-list', array('files' => $files));
+}
+
+function list_remote_configs()
+{
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('no-permission');
+ return;
+ }
+ $data = Util::download(CONFIG_REMOTE_TGZ . '/list', 4, $code);
+ if ($code !== 200) {
+ Message::addError('remote-timeout', CONFIG_REMOTE_TGZ);
+ return;
+ }
+ $list = json_decode($data, true);
+ if (!is_array($list)) {
+ Message::addError('remote-parse-failed');
+ return;
+ }
+ $id = 0;
+ foreach ($list as &$item) {
+ $item['id'] = ++$id;
+ }
+ Render::addTemplate('remote-tgz-list', array('files' => $list));
+}
+