summaryrefslogtreecommitdiffstats
path: root/modules/sysconfig.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-09 18:31:40 +0100
committerSimon Rettberg2013-11-09 18:31:40 +0100
commit3a6abc666fe815c789fbb5068d011acd8766e1e7 (patch)
tree84006a3f701307bd2f9072fd0b7ee0475848b548 /modules/sysconfig.inc.php
parentMake download work (diff)
downloadslx-admin-3a6abc666fe815c789fbb5068d011acd8766e1e7.tar.gz
slx-admin-3a6abc666fe815c789fbb5068d011acd8766e1e7.tar.xz
slx-admin-3a6abc666fe815c789fbb5068d011acd8766e1e7.zip
Add custom config.tgz upload functionality
Diffstat (limited to 'modules/sysconfig.inc.php')
-rw-r--r--modules/sysconfig.inc.php27
1 files changed, 26 insertions, 1 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php
index e4751ec4..d5300194 100644
--- a/modules/sysconfig.inc.php
+++ b/modules/sysconfig.inc.php
@@ -2,6 +2,31 @@
User::load();
+if (isset($_POST['action']) && $_POST['action'] === 'upload') {
+ if (!Util::verifyToken()) {
+ Util::redirect('?do=sysconfig');
+ }
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('no-permission');
+ Util::redirect('?do=sysconfig');
+ }
+ if (!isset($_FILES['customtgz'])) {
+ Message::addError('missing-file');
+ Util::redirect('?do=sysconfig');
+ }
+ $dest = $_FILES['customtgz']['name'];
+ $dest = preg_replace('/[^a-z0-9\-_]/', '', $dest);
+ $dest = substr($dest, 0, 30);
+ if (substr($dest, -3) !== 'tgz') $dest .= '.tgz';
+ # TODO: Validate its a (compressed) tar?
+ if (move_uploaded_file($_FILES['customtgz']['tmp_name'], CONFIG_TGZ_LIST_DIR . '/' . $dest)) {
+ Message::addSuccess('upload-complete', $dest);
+ } else {
+ Message::addError('upload-failed', $dest);
+ }
+ Util::redirect('?do=sysconfig');
+}
+
function render_module()
{
if (!isset($_REQUEST['action'])) $_REQUEST['action'] = 'list';
@@ -30,7 +55,7 @@ function list_configs()
'file' => $file
);
}
- Render::addTemplate('page-tgz-list', array('files' => $files));
+ Render::addTemplate('page-tgz-list', array('files' => $files, 'token' => Session::get('token')));
}
function list_remote_configs()