From 3fbdb9bd7b59e185fe7efd40c74f009bc4e97d2f Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 04 Mar 2009 10:21:24 -0500
Subject: [PATCH] changed vhost.conf.master
---
interface/lib/classes/tform.inc.php | 92 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 81 insertions(+), 11 deletions(-)
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index 888c0b6..5a53a4f 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -130,9 +130,7 @@
$this->module = $module;
$wb = array();
- $lng_file = ISPC_WEB_PATH.'/lang/lib/lang/'.$_SESSION['s']['language'].'_tform.lng';
- if(!file_exists($lng_file)) $lng_file = ISPC_WEB_PATH.'/lang/lib/lang/en'.'_tform.lng';
- include($lng_file);
+ include_once(ISPC_ROOT_PATH.'/lib/lang/'.$_SESSION['s']['language'].'.lng');
if($module == '') {
$lng_file = "lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng";
if(!file_exists($lng_file)) $lng_file = "lib/lang/en_".$this->formDef["name"].".lng";
@@ -254,6 +252,45 @@
return $values;
}
+
+ //* If the parameter 'valuelimit' is set
+ function applyValueLimit($limit,$values) {
+
+ global $app;
+
+ $limit_parts = explode(':',$limit);
+
+ //* values are limited to a comma separated list
+ if($limit_parts[0] == 'list') {
+ $allowed = explode(',',$limit_parts[1]);
+ }
+
+ //* values are limited to a field in the client settings
+ if($limit_parts[0] == 'client') {
+ if($_SESSION["s"]["user"]["typ"] == 'admin') {
+ return $values;
+ } else {
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+ $allowed = explode(',',$client['lm']);
+ }
+ }
+
+ //* values are limited to a field in the system settings
+ if($limit_parts[0] == 'system') {
+ $app->uses('getconf');
+ $tmp_conf = $app->getconf->get_global_config($limit_parts[1]);
+ $tmp_key = $limit_parts[2];
+ $allowed = $tmp_conf[$tmp_key];
+ }
+
+ $values_new = array();
+ foreach($values as $key => $val) {
+ if(in_array($key,$allowed)) $values_new[$key] = $val;
+ }
+
+ return $values_new;
+ }
/**
@@ -283,6 +320,11 @@
if(isset($field['datasource']) && is_array($field['datasource'])) {
$field["value"] = $this->getDatasourceData($field, $record);
}
+
+ // If a limitation for the values is set
+ if(isset($field['valuelimit']) && is_array($field["value"])) {
+ $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]);
+ }
switch ($field['formtype']) {
case 'SELECT':
@@ -342,7 +384,7 @@
$out .= "<span class=\"wf_oneChoice\">\r\n
<input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n
<label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n
- </span><br />\r\n";
+ </span>\r\n";
}
}
$new_record[$key] = $out;
@@ -375,8 +417,13 @@
// If Datasource is set, get the data from there
if(@is_array($field['datasource'])) {
- $field["value"] = $this->getDatasourceData($field, $record);
+ $field["value"] = $this->getDatasourceData($field, $record);
}
+
+ // If a limitation for the values is set
+ if(isset($field['valuelimit']) && is_array($field["value"])) {
+ $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]);
+ }
switch ($field['formtype']) {
case 'SELECT':
@@ -433,7 +480,7 @@
$out .= "<span class=\"wf_oneChoice\">\r\n
<input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n
<label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n
- </span><br />\r\n";
+ </span>\r\n";
}
}
$new_record[$key] = $out;
@@ -488,7 +535,7 @@
switch ($field['datatype']) {
case 'VARCHAR':
if(!@is_array($record[$key])) {
- $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):'';
+ $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):'';
} else {
$new_record[$key] = implode($field['separator'],$record[$key]);
}
@@ -630,6 +677,24 @@
$this->errorMessage .= $errmsg."<br />\r\n";
}
}
+ break;
+ case 'ISIPV4':
+ $vip=1;
+ if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){
+ $groups=explode(".",$field_value);
+ foreach($groups as $group){
+ if($group<0 OR $group>255)
+ $vip=0;
+ }
+ }else{$vip=0;}
+ if($vip==0) {
+ $errmsg = $validator['errmsg'];
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."<br />\r\n";
+ }
+ }
break;
case 'CUSTOM':
// Calls a custom class to validate this record
@@ -906,8 +971,8 @@
$escape = '`';
}
- $diffrec = array();
-
+ $this->diffrec = array();
+ /*
if(is_array($record_new) && count($record_new) > 0) {
foreach($record_new as $key => $val) {
if(@$record_old[$key] != $val) {
@@ -926,7 +991,7 @@
}
}
$this->diffrec = $diffrec;
-
+ */
// Full diff records for ISPConfig, they have a different format then the simple diffrec
$diffrec_full = array();
@@ -938,6 +1003,8 @@
// Record has changed
$diffrec_full['old'][$key] = $val;
$diffrec_full['new'][$key] = $record_new[$key];
+ $this->diffrec[$key] = array( 'new' => $record_new[$key],
+ 'old' => $val);
} else {
$diffrec_full['old'][$key] = $val;
$diffrec_full['new'][$key] = $val;
@@ -949,6 +1016,8 @@
// Record has changed
$diffrec_full['new'][$key] = $val;
$diffrec_full['old'][$key] = $record_old[$key];
+ $this->diffrec[$key] = array( 'old' => @$record_old[$key],
+ 'new' => $val);
} else {
$diffrec_full['new'][$key] = $val;
$diffrec_full['old'][$key] = $val;
@@ -956,12 +1025,13 @@
}
}
+ //$this->diffrec = $diffrec;
// Insert the server_id, if the record has a server_id
$server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0;
if(isset($record_new["server_id"])) $server_id = $record_new["server_id"];
if(count($this->diffrec) > 0) {
- $diffstr = $app->db->quote(serialize($diffrec_full));
+ $diffstr = addslashes(serialize($diffrec_full));
$username = $app->db->quote($_SESSION["s"]["user"]["username"]);
$dbidx = $this->formDef['db_table_idx'].":".$primary_id;
// $action = ($action == 'INSERT')?'i':'u';
--
Gitblit v1.9.1