From e631410a14d68c6c54242cf833c0de9c79bc09dd Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 21 Jul 2010 11:41:48 -0400
Subject: [PATCH] Fixed: FS#1220 - /var/vmail/(domain)/(user) directories and files not delete when mail_user is deleted via remote.

---
 interface/lib/classes/tform.inc.php |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 35ca443..e790a8b 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -362,7 +362,7 @@
                                         // If Datasource is set, get the data from there
                                         if(isset($field['datasource']) && is_array($field['datasource'])) {
 												if(is_array($field["value"])) {
-													$field["value"] = array_merge($field["value"],$this->getDatasourceData($field, $record));
+													$field["value"] = $field["value"] + $this->getDatasourceData($field, $record);
 												} else {
                                                 	$field["value"] = $this->getDatasourceData($field, $record);
 												}
@@ -733,7 +733,7 @@
                                         }
                                 break;
                                 case 'ISEMAIL':
-                                        if(!preg_match("/^\w+[\w.-]*\w{0,}@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) {
+                                        if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) {
                                                 $errmsg = $validator['errmsg'];
                                                 if(isset($this->wordbook[$errmsg])) {
                                                     $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
@@ -1125,15 +1125,18 @@
 
         }
 
-        function getAuthSQL($perm) {
+        function getAuthSQL($perm, $table = '') {
 				if($_SESSION["s"]["user"]["typ"] == 'admin') {
 					return '1';
 				} else {
+					if ($table != ''){
+						$table = ' ' . $table . '.';
+					}
                 	$groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
 					$sql = '(';
-                	$sql .= "(sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND sys_perm_user like '%$perm%') OR  ";
-                	$sql .= "(sys_groupid IN (".$groups.") AND sys_perm_group like '%$perm%') OR ";
-                	$sql .= "sys_perm_other like '%$perm%'";
+                	$sql .= "(" . $table . "sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND " . $table . "sys_perm_user like '%$perm%') OR  ";
+                	$sql .= "(" . $table . "sys_groupid IN (".$groups.") AND " . $table ."sys_perm_group like '%$perm%') OR ";
+                	$sql .= $table . "sys_perm_other like '%$perm%'";
                 	$sql .= ')';
 
                 	return $sql;

--
Gitblit v1.9.1