From 49df59c9fb814834bfca91fc8efc0f2248b6a0e5 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 15 Oct 2012 07:26:06 -0400
Subject: [PATCH] Updated German language files.

---
 interface/web/admin/system_config_edit.php |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php
index f6a4c05..0a75028 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,
@@ -77,8 +77,27 @@
 		$app->tpl->setVar($record);
 	}
 	
+    function onSubmit() {
+        global $app;
+        
+        $app->uses('ini_parser,getconf');
+		
+        $section = $app->tform->getCurrentTab();
+		
+		$server_config_array = $app->getconf->get_global_config();
+		$new_config = $app->tform->encode($this->dataRecord,$section);
+        if($section == 'mail') {
+            if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['smtp_pass'];
+            if($new_config['smtp_enabled'] == 'y' && ($new_config['admin_mail'] == '' || $new_config['admin_name'] == '')) {
+                $app->tform->errorMessage .= $app->tform->lng("smtp_missing_admin_mail_txt");
+            }
+        }
+        
+        parent::onSubmit();
+    }
+    
 	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');
@@ -86,11 +105,21 @@
 		$section = $app->tform->getCurrentTab();
 		
 		$server_config_array = $app->getconf->get_global_config();
-		$server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
+		$new_config = $app->tform->encode($this->dataRecord,$section);
+        if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['vhost_subdomains'] == 'y') {
+            // check for existing vhost subdomains, if found the mode cannot be disabled
+            $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostsubdomain'");
+            if($check['cnt'] > 0) {
+                $new_config['vhost_subdomains'] = 'y';
+            }
+        } elseif($section == 'mail') {
+            if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['smtp_pass'];
+        }
+        $server_config_array[$section] = $new_config;
 		$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
@@ -105,9 +134,16 @@
 			$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";
+				"FROM web_domain WHERE type NOT IN ('subdomain','vhostsubdomain')";
 			$app->db->query($sql);
 		}
+		
+		// Maintenance mode
+		if($server_config_array['misc']['maintenance_mode'] == 'y'){
+			//print_r($_SESSION);
+			//echo $_SESSION['s']['id'];
+			$app->db->query("DELETE FROM sys_session WHERE session_id != '".$_SESSION['s']['id']."'");
+		}
 	}
 	
 }

--
Gitblit v1.9.1