From 40c436b6e2724e98efb51582d1ad8fad6dcf4a1c Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 09 Sep 2011 08:28:25 -0400
Subject: [PATCH] - Implemented: FS#1339 - Add "disablesieve" to mail_user table - Added fields for IPv6 support and virtualhost Port Configuration to server_ip table

---
 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