summaryrefslogtreecommitdiffstats
path: root/modules/sysconfig.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-16 15:42:16 +0100
committerSimon Rettberg2013-11-16 15:42:16 +0100
commit633e43127c6d1a96d47587eed2739bdaff6c3d4f (patch)
treeafe22b5cef77a5a054388d05f6a2c106dcb4d60b /modules/sysconfig.inc.php
parentAdd custom config.tgz upload functionality (diff)
downloadslx-admin-633e43127c6d1a96d47587eed2739bdaff6c3d4f.tar.gz
slx-admin-633e43127c6d1a96d47587eed2739bdaff6c3d4f.tar.xz
slx-admin-633e43127c6d1a96d47587eed2739bdaff6c3d4f.zip
Add minilinux download functionality and ipxe compilation scripts
Diffstat (limited to 'modules/sysconfig.inc.php')
-rw-r--r--modules/sysconfig.inc.php29
1 files changed, 28 insertions, 1 deletions
diff --git a/modules/sysconfig.inc.php b/modules/sysconfig.inc.php
index d5300194..f10446ed 100644
--- a/modules/sysconfig.inc.php
+++ b/modules/sysconfig.inc.php
@@ -27,6 +27,33 @@ if (isset($_POST['action']) && $_POST['action'] === 'upload') {
Util::redirect('?do=sysconfig');
}
+if (isset($_REQUEST['action']) && $_REQUEST['action'] === 'activate') {
+ if (!Util::verifyToken()) {
+ Util::redirect('?do=sysconfig');
+ }
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('no-permission');
+ Util::redirect('?do=sysconfig');
+ }
+ if (!isset($_REQUEST['file'])) {
+ Message::addError('missing-file');
+ Util::redirect('?do=sysconfig');
+ }
+ $file = preg_replace('/[^a-z0-9\-_\.]/', '', $_REQUEST['file']);
+ $path = CONFIG_TGZ_LIST_DIR . '/' . $file;
+ if (!file_exists($path)) {
+ Message::addError('invalid-file', $file);
+ Util::redirect('?do=sysconfig');
+ }
+ mkdir(CONFIG_HTTP_DIR . '/default', 0755, true);
+ $linkname = CONFIG_HTTP_DIR . '/default/config.tgz';
+ @unlink($linkname);
+ if (file_exists($linkname)) Util::traceError('Could not delete old config.tgz link!');
+ if (!symlink($path, $linkname)) Util::traceError("Could not symlink to $path at $linkname!");
+ Message::addSuccess('config-activated');
+ Util::redirect('?do=sysconfig');
+}
+
function render_module()
{
if (!isset($_REQUEST['action'])) $_REQUEST['action'] = 'list';
@@ -52,7 +79,7 @@ function list_configs()
$files = array();
foreach (glob(CONFIG_TGZ_LIST_DIR . '/*.tgz') as $file) {
$files[] = array(
- 'file' => $file
+ 'file' => basename($file)
);
}
Render::addTemplate('page-tgz-list', array('files' => $files, 'token' => Session::get('token')));