From f99b37f56dad8e3a1f844f8d3b33ee1ba4b86d62 Mon Sep 17 00:00:00 2001 From: latham <latham@ispconfig3> Date: Wed, 25 May 2011 19:11:40 -0400 Subject: [PATCH] the altertable for the groups --- interface/lib/classes/tform.inc.php | 85 +++++++++++++++++++++++++++++++----------- 1 files changed, 62 insertions(+), 23 deletions(-) diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index 4e047da..e43eae9 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -40,7 +40,7 @@ * - DOUBLE * - CURRENCY (Formats digits in currency notation) * - VARCHAR (No format check) -* - DATE (Date format, converts from and to linux timestamps automatically) +* - DATE (Date format, converts from and to UNIX timestamps automatically) * * Formtype: * - TEXT (Normal text field) @@ -143,9 +143,9 @@ if(!file_exists($lng_file)) $lng_file = "../$module/lib/lang/en_".$this->formDef["name"].".lng"; include($lng_file); } - + if(is_array($wb_global)) { - $wb = array_merge($wb_global,$wb); + $wb = $app->functions->array_merge($wb_global,$wb); } if(isset($wb_global)) unset($wb_global); @@ -163,7 +163,8 @@ * @return record */ function decode($record,$tab) { - if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab)."); + global $conf, $app; + if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab does not exist or the tab is empty (TAB: $tab)."); $new_record = ''; if(is_array($record)) { foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { @@ -176,9 +177,16 @@ $new_record[$key] = $record[$key]; break; - case 'DATE': + case 'DATETSTAMP': if($record[$key] > 0) { $new_record[$key] = date($this->dateformat,$record[$key]); + } + break; + + case 'DATE': + if($record[$key] != '' && $record[$key] != '0000-00-00') { + $tmp = explode('-',$record[$key]); + $new_record[$key] = date($this->dateformat,mktime(0, 0, 0, $tmp[1] , $tmp[2], $tmp[0])); } break; @@ -191,7 +199,7 @@ break; case 'CURRENCY': - $new_record[$key] = number_format($record[$key], 2, ',', ''); + $new_record[$key] = $app->functions->currency_format($record[$key]); break; default: @@ -354,7 +362,12 @@ // If Datasource is set, get the data from there if(isset($field['datasource']) && is_array($field['datasource'])) { - $field["value"] = $this->getDatasourceData($field, $record); + if(is_array($field["value"])) { + //$field["value"] = array_merge($field["value"],$this->getDatasourceData($field, $record)); + $field["value"] = $app->functions->array_merge($field["value"],$this->getDatasourceData($field, $record)); + } else { + $field["value"] = $this->getDatasourceData($field, $record); + } } // If a limitation for the values is set @@ -368,6 +381,8 @@ if(is_array($field['value'])) { foreach($field['value'] as $k => $v) { $selected = ($k == $val)?' SELECTED':''; + if(!empty($this->wordbook[$v])) + $v = $this->wordbook[$v]; $out .= "<option value='$k'$selected>$v</option>\r\n"; } } @@ -418,7 +433,7 @@ if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } // $out .= "<label for=\"".$key."[]\" class=\"inlineLabel\"><input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v</label>\r\n"; - $out .= "<input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v \r\n"; + $out .= "<input name=\"".$key."[]\" id=\"".$key."[]\" value=\"$k\" type=\"checkbox\" $checked /> $v <br/>\r\n"; } } $new_record[$key] = $out; @@ -463,7 +478,11 @@ // If Datasource is set, get the data from there if(@is_array($field['datasource'])) { - $field["value"] = $this->getDatasourceData($field, $record); + if(is_array($field["value"])) { + $field["value"] = $app->functions->array_merge($field["value"],$this->getDatasourceData($field, $record)); + } else { + $field["value"] = $this->getDatasourceData($field, $record); + } } // If a limitation for the values is set @@ -476,9 +495,8 @@ if(is_array($field['value'])) { $out = ''; foreach($field['value'] as $k => $v) { - //$selected = ($k == $val)?' SELECTED':''; - $selected = ''; - $out .= "<option value='$k'$selected>$v</option>\r\n"; + $selected = ($k == $field["default"])?' SELECTED':''; + $out .= "<option value='$k'$selected>".$this->lng($v)."</option>\r\n"; } } if(isset($out)) $new_record[$key] = $out; @@ -596,12 +614,30 @@ $new_record[$key] = implode($field['separator'],$record[$key]); } break; - case 'DATE': + case 'DATETSTAMP': if($record[$key] > 0) { list($tag,$monat,$jahr) = explode('.',$record[$key]); $new_record[$key] = mktime(0,0,0,$monat,$tag,$jahr); } else { $new_record[$key] = 0; + } + break; + case 'DATE': + if($record[$key] != '' && $record[$key] != '0000-00-00') { + if(function_exists('date_parse_from_format')) { + $date_parts = date_parse_from_format($this->dateformat,$record[$key]); + //list($tag,$monat,$jahr) = explode('.',$record[$key]); + $new_record[$key] = $date_parts['year'].'-'.$date_parts['month'].'-'.$date_parts['day']; + //$tmp = strptime($record[$key],$this->dateformat); + //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday']; + } else { + //$tmp = strptime($record[$key],$this->dateformat); + //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday']; + $tmp = strtotime($record[$key]); + $new_record[$key] = date('Y-m-d',$tmp); + } + } else { + $new_record[$key] = '0000-00-00'; } break; case 'INTEGER': @@ -709,7 +745,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-zA-Z0-9\-]{2,30}$/i", $field_value)) { $errmsg = $validator['errmsg']; if(isset($this->wordbook[$errmsg])) { $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; @@ -832,14 +868,14 @@ } $salt.="$"; // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); + $record[$key] = crypt(stripslashes($record[$key]),$salt); $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } elseif ($field['encryption'] == 'MYSQL') { $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; } elseif ($field['encryption'] == 'CLEARTEXT') { $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } else { - $record[$key] = md5($record[$key]); + $record[$key] = md5(stripslashes($record[$key])); $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; } @@ -867,14 +903,14 @@ } $salt.="$"; // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); + $record[$key] = crypt(stripslashes($record[$key]),$salt); $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } elseif (isset($field['encryption']) && $field['encryption'] == 'MYSQL') { $sql_update .= "`$key` = PASSWORD('".$app->db->quote($record[$key])."'), "; } elseif (isset($field['encryption']) && $field['encryption'] == 'CLEARTEXT') { $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } else { - $record[$key] = md5($record[$key]); + $record[$key] = md5(stripslashes($record[$key])); $sql_update .= "`$key` = '".$app->db->quote($record[$key])."', "; } @@ -1101,15 +1137,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; @@ -1394,4 +1433,4 @@ } } -?> \ No newline at end of file +?> -- Gitblit v1.9.1