From 9ea57c38f77619af26d580f2355ec9d86c7e0f24 Mon Sep 17 00:00:00 2001
From: Dominik Müller <info@profi-webdesign.net>
Date: Mon, 20 Jan 2014 12:24:04 -0500
Subject: [PATCH] Use -1 as "unsetted" value do not change parameter order in old functions

---
 /dev/null                                    |    1 -
 install/sql/incremental/upd_0064.sql         |    2 ++
 interface/web/mail/mail_user_edit.php        |    4 ++--
 server/plugins-available/mail_plugin.inc.php |   26 +++++++++++++-------------
 interface/lib/classes/remote.d/mail.inc.php  |    4 ++--
 server/lib/classes/system.inc.php            |    2 +-
 6 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/install/sql/incremental/upd_0063.sql b/install/sql/incremental/upd_0063.sql
deleted file mode 100644
index 827fdee..0000000
--- a/install/sql/incremental/upd_0063.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE `mail_user` ADD `disablelmtp` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n' AFTER `disablelda` ;
\ No newline at end of file
diff --git a/install/sql/incremental/upd_0064.sql b/install/sql/incremental/upd_0064.sql
new file mode 100644
index 0000000..23bdd26
--- /dev/null
+++ b/install/sql/incremental/upd_0064.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `mail_user` ADD `disablelmtp` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n' AFTER `disablelda` ;
+ALTER TABLE `mail_user` CHANGE `uid` `uid` INT( 11 ) NOT NULL DEFAULT '5000', CHANGE `gid` `gid` INT( 11 ) NOT NULL DEFAULT '5000' ;
\ No newline at end of file
diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php
index 6695814..c54466f 100644
--- a/interface/lib/classes/remote.d/mail.inc.php
+++ b/interface/lib/classes/remote.d/mail.inc.php
@@ -215,8 +215,8 @@
 		}
 
 		//* Set a few params to non empty values that will be overwritten by mail_plugin
-		if (!isset($params['uid'])) $params['uid'] = 999989999;
-		if (!isset($params['gid'])) $params['gid'] = 999989999;
+		if (!isset($params['uid'])) $params['uid'] = -1;
+		if (!isset($params['gid'])) $params['gid'] = -1;
 
 		$affected_rows = $this->insertQuery('../mail/form/mail_user.tform.php', $client_id, $params);
 		return $affected_rows;
diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index 435489f..75fb42f 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -205,8 +205,8 @@
 			$this->dataRecord["homedir"] = $mail_config["homedir_path"];
 			
 			// Will be overwritten by mail_plugin
-			$this->dataRecord['uid'] = 999989999;
-			$this->dataRecord['gid'] = 999989999;
+			$this->dataRecord['uid'] = -1;
+			$this->dataRecord['gid'] = -1;
 				
 			//* Check if there is no alias or forward with this address
 			$tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE active = 'y' AND source = '".$app->db->quote($this->dataRecord["email"])."'");
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 9b7d994..f79bea1 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1524,7 +1524,7 @@
 		}
 	}
 
-	function maildirmake($maildir_path, $user = '', $group = '', $subfolder = '') {
+	function maildirmake($maildir_path, $user = '', $subfolder = '', $group = '') {
 
 		global $app;
 
diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php
index 72b69a3..c5f1392 100644
--- a/server/plugins-available/mail_plugin.inc.php
+++ b/server/plugins-available/mail_plugin.inc.php
@@ -93,7 +93,7 @@
 		$base_path = implode('/', $tmp_basepath_parts);
 
 		//* Set the email-uid and gid if not given
-		if (($data['new']['uid'] == 999989999) || ($data['new']['gid'] == 999989999)) {
+		if (($data['new']['uid'] == -1) || ($data['new']['gid'] == -1)) {
 			$app->log('Setting uid and gid automatically',LOGLEVEL_DEBUG);
 			if ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') {
 				$app->log('Map uid to linux-user',LOGLEVEL_DEBUG);
@@ -113,8 +113,8 @@
 			}
 		}
 		// if nothing set before -> use standard mailuser uid and gid vmail
-		if ($data['new']['uid'] == 999989999) $data['new']['uid'] = $mail_config["mailuser_uid"];
-		if ($data['new']['gid'] == 999989999) $data['new']['gid'] = $mail_config["mailuser_gid"];
+		if ($data['new']['uid'] == -1) $data['new']['uid'] = $mail_config["mailuser_uid"];
+		if ($data['new']['gid'] == -1) $data['new']['gid'] = $mail_config["mailuser_gid"];
 		$app->log('Mailuser uid: '.$data['new']['uid'].', gid: '.$data['new']['gid'],LOGLEVEL_DEBUG);
 
 		// update DB if values changed
@@ -148,7 +148,7 @@
 		if(!empty($maildomain_path) && !is_dir($maildomain_path)) {
 
 			//exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
-			$app->system->maildirmake($maildomain_path, $user, $group);
+			$app->system->maildirmake($maildomain_path, $user, '', $group);
 
 			//* This is to fix the maildrop quota not being rebuilt after the quota is changed.
 			if($mail_config['pop3_imap_daemon'] != 'dovecot') {
@@ -160,22 +160,22 @@
 		if(!is_dir($data['new']['maildir'].'/.Sent')) {
 			//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Sent');
+			$app->system->maildirmake($maildomain_path, $user, 'Sent', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Drafts')) {
 			//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Drafts');
+			$app->system->maildirmake($maildomain_path, $user, 'Drafts', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Trash')) {
 			//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Trash');
+			$app->system->maildirmake($maildomain_path, $user, 'Trash', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Junk')) {
 			//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Junk');
+			$app->system->maildirmake($maildomain_path, $user, 'Junk', $group);
 		}
 
 		// Set permissions now recursive
@@ -284,7 +284,7 @@
 		if(!empty($maildomain_path) && !is_dir($maildomain_path.'/new')) {
 			//exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group);
+			$app->system->maildirmake($maildomain_path, $user, '', $group);
 
 			//* This is to fix the maildrop quota not being rebuilt after the quota is changed.
 			if($mail_config['pop3_imap_daemon'] != 'dovecot') {
@@ -301,22 +301,22 @@
 		if(!is_dir($data['new']['maildir'].'/.Sent')) {
 			//exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Sent');
+			$app->system->maildirmake($maildomain_path, $user, 'Sent', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Drafts')) {
 			//exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Drafts');
+			$app->system->maildirmake($maildomain_path, $user, 'Drafts', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Trash')) {
 			//exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Trash');
+			$app->system->maildirmake($maildomain_path, $user, 'Trash', $group);
 		}
 		if(!is_dir($data['new']['maildir'].'/.Junk')) {
 			//exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']);
 			//$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG);
-			$app->system->maildirmake($maildomain_path, $user, $group, 'Junk');
+			$app->system->maildirmake($maildomain_path, $user, 'Junk', $group);
 		}
 
 		// Set permissions now recursive

--
Gitblit v1.9.1