From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Sun, 10 Jul 2016 05:02:35 -0400
Subject: [PATCH] Merge branch 'stable-3.1'
---
interface/web/admin/server_config_edit.php | 60 ++++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 38 insertions(+), 22 deletions(-)
diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php
index c034da1..4c03e7e 100644
--- a/interface/web/admin/server_config_edit.php
+++ b/interface/web/admin/server_config_edit.php
@@ -38,60 +38,76 @@
* End Form configuration
******************************************/
-require_once('../../lib/config.inc.php');
-require_once('../../lib/app.inc.php');
+require_once '../../lib/config.inc.php';
+require_once '../../lib/app.inc.php';
//* Check permissions for module
$app->auth->check_module_permissions('admin');
+$app->auth->check_security_permissions('admin_allow_server_config');
+
// Loading classes
$app->uses('tpl,tform,tform_actions');
$app->load('tform_actions');
class page_action extends tform_actions {
-
+
function onShowEdit() {
global $app, $conf;
-
+
if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges');
-
+
if($app->tform->errorMessage == '') {
$app->uses('ini_parser,getconf');
-
+
$section = $this->active_tab;
$server_id = $this->id;
-
- $this->dataRecord = $app->getconf->get_server_config($server_id,$section);
+
+ $this->dataRecord = $app->getconf->get_server_config($server_id, $section);
}
-
- $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT');
-
+
+ $record = $app->tform->getHTML($this->dataRecord, $this->active_tab, 'EDIT');
+
$record['id'] = $this->id;
$app->tpl->setVar($record);
}
-
+
function onUpdateSave($sql) {
- global $app,$conf;
-
+ global $app, $conf;
+
if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges');
$app->uses('ini_parser,getconf');
-
+
if($conf['demo_mode'] != true) {
$section = $app->tform->getCurrentTab();
$server_id = $this->id;
-
+
$server_config_array = $app->getconf->get_server_config($server_id);
- $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
- $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
-
- $app->db->datalogUpdate('server', "config = '".$app->db->quote($server_config_str)."'", 'server_id', $server_id);
+
+ foreach($app->tform->formDef['tabs'][$section]['fields'] as $key => $field) {
+ if ($field['formtype'] == 'CHECKBOX') {
+ if($this->dataRecord[$key] == '') {
+ // if a checkbox is not set, we set it to the unchecked value
+ $this->dataRecord[$key] = $field['value'][0];
+ }
+ }
+ }
+
+ if($app->tform->errorMessage == '') {
+ $server_config_array[$section] = $app->tform->encode($this->dataRecord, $section);
+ $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
+
+ $app->db->datalogUpdate('server', array("config" => $server_config_str), 'server_id', $server_id);
+ } else {
+ $app->error('Security breach!');
+ }
}
}
-
+
}
$app->tform_actions = new page_action;
$app->tform_actions->onLoad();
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1