From dbd43c9e0d1e48eae229b3baeb8ba1bad128b5e9 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Sun, 11 Mar 2007 11:57:35 -0400
Subject: [PATCH] Added spamfilter white- and blacklists.
---
interface/lib/classes/tform.inc.php | 77 +++++++++++++++++++++++++++++++-------
1 files changed, 62 insertions(+), 15 deletions(-)
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 9c9bafb..a7f821a 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -313,8 +313,8 @@
break;
case 'CHECKBOX':
- $checked = (empty($val))?'':' CHECKED';
- $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value']."\" $checked>\r\n";
+ $checked = ($val == $field['value'][1])?' CHECKED':'';
+ $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value'][1]."\" $checked>\r\n";
break;
case 'CHECKBOXARRAY':
@@ -397,8 +397,9 @@
break;
case 'CHECKBOX':
- $checked = (empty($field["default"]))?'':' CHECKED';
- $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value']."\" $checked>\r\n";
+ // $checked = (empty($field["default"]))?'':' CHECKED';
+ $checked = ($field["default"] == $field['value'][1])?' CHECKED':'';
+ $new_record[$key] = "<input name=\"".$key."\" type=\"checkbox\" value=\"".$field['value'][1]."\" $checked>\r\n";
break;
case 'CHECKBOXARRAY':
@@ -483,7 +484,9 @@
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 'INTEGER':
$new_record[$key] = intval($record[$key]);
@@ -526,7 +529,7 @@
function validateField($field_name, $field_value, $validators) {
global $app;
-
+
// loop trough the validators
foreach($validators as $validator) {
@@ -543,39 +546,63 @@
$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."'");
if($num_rec["number"] > 0) {
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
} else {
$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM ".$escape.$this->formDef['db_table'].$escape. " WHERE $field_name = '".$app->db->quote($field_value)."' AND ".$this->formDef['db_table_idx']." != ".$this->primary_id);
if($num_rec["number"] > 0) {
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
}
break;
case 'NOTEMPTY':
if(empty($field_value)) {
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
break;
case 'ISEMAIL':
if(!preg_match("/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $field_value)) {
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
break;
case 'ISINT':
$tmpval = intval($field_value);
if($tmpval === 0 and !empty($field_value)) {
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
break;
case 'ISPOSITIVE':
if(!is_numeric($field_value) || $field_value <= 0){
$errmsg = $validator['errmsg'];
- $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br>\r\n";
+ }
}
break;
case 'CUSTOM':
@@ -589,6 +616,9 @@
$this->errorMessage .= "Custom validator class or function is empty<br>\r\n";
}
break;
+ default:
+ $this->errorMessage .= "Unknown Validator: ".$validator['type'];
+ break;
}
@@ -646,6 +676,13 @@
} else {
$sql_insert_val .= "md5('".$record[$key]."'), ";
}
+ } elseif ($field['formtype'] == 'CHECKBOX') {
+ $sql_insert_key .= "`$key`, ";
+ if($record[$key] == '') {
+ $sql_insert_val .= "'".$field['value'][0]."', ";
+ } else {
+ $sql_insert_val .= "'".$record[$key]."', ";
+ }
} else {
$sql_insert_key .= "`$key`, ";
$sql_insert_val .= "'".$record[$key]."', ";
@@ -657,6 +694,12 @@
} else {
$sql_update .= "`$key` = md5('".$record[$key]."'), ";
}
+ } elseif ($field['formtype'] == 'CHECKBOX') {
+ if($record[$key] == '') {
+ $sql_update .= "`$key` = '".$field['value'][0]."', ";
+ } else {
+ $sql_update .= "`$key` = '".$record[$key]."', ";
+ }
} else {
$sql_update .= "`$key` = '".$record[$key]."', ";
}
@@ -703,7 +746,6 @@
// Daten in History tabelle speichern
if($this->errorMessage == '' and $this->formDef['db_history'] == 'yes') $this->datalogSave($action,$primary_id,$record);
-
return $sql;
}
@@ -810,12 +852,17 @@
$server_id = ($record_old["server_id"] > 0)?$record_old["server_id"]:0;
if(count($diffrec) > 0) {
- $diffstr = $app->db->quote(serialize($diffrec));
+
+ // We need the full records in ISPConfig, not only the diffs
+ $diffrec = array( 'old' => $record_old,
+ 'new' => $record_new);
+
+ $diffstr = $app->db->quote(serialize($diffrec));
$username = $app->db->quote($_SESSION["s"]["user"]["username"]);
$dbidx = $this->formDef['db_table_idx'].":".$primary_id;
$action = ($action == 'INSERT')?'i':'u';
$sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')";
- $app->db->query($sql);
+ $app->db->query($sql);
}
return true;
--
Gitblit v1.9.1