From 378935a8a92592cf1ef164b4d969c376c46a78c6 Mon Sep 17 00:00:00 2001 From: nveid <nveid@ispconfig3> Date: Fri, 09 Dec 2011 02:35:24 -0500 Subject: [PATCH] Fixed mysql error when switching from "Options" tab to "Ftp User" edit tab, the onUpdate thought we were trying to change the Website because the Options Datalog didn't have the parent_domain_id and the Ftp User tab did. --- interface/web/admin/system_config_edit.php | 34 ++++++++++++++++++++++++++++------ 1 files changed, 28 insertions(+), 6 deletions(-) diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 62ffef5..2270209 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -1,6 +1,6 @@ <?php /* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh +Copyright (c) 2008-2010, Till Brehm, projektfarm Gmbh All rights reserved. Redistribution and use in source and binary forms, with or without modification, @@ -49,7 +49,8 @@ $app->load('tform_actions'); class page_action extends tform_actions { - + + function onShowEdit() { global $app, $conf; @@ -62,6 +63,11 @@ $server_id = $this->id; $this->dataRecord = $app->getconf->get_global_config($section); + if ($section == 'domains'){ + if (isset($this->dataRecord['use_domain_module'])){ + $_SESSION['use_domain_module_old_value'] = $this->dataRecord['use_domain_module']; + } + } } $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT'); @@ -72,20 +78,36 @@ } function onUpdateSave($sql) { - global $app; + global $app,$conf; if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); $app->uses('ini_parser,getconf'); $section = $app->tform->getCurrentTab(); - $server_id = $this->id; - $server_config_array = $app->getconf->get_global_config($server_id); + $server_config_array = $app->getconf->get_global_config(); $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section); $server_config_str = $app->ini_parser->get_ini_string($server_config_array); $sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; - $app->db->query($sql); + if($conf['demo_mode'] != true) $app->db->query($sql); + + /* + * If we should use the domain-module, we have to insert all existing domains into the table + * (only the first time!) + */ + if (($section == 'domains') && + ($_SESSION['use_domain_module_old_value'] == '') && + ($server_config_array['domains']['use_domain_module'] == 'y')){ + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM mail_domain"; + $app->db->query($sql); + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM web_domain"; + $app->db->query($sql); + } } } -- Gitblit v1.9.1