| | |
| | | var $errorMessage = ''; |
| | | |
| | | var $dateformat = "d.m.Y"; |
| | | var $formDef; |
| | | var $formDef; |
| | | var $wordbook; |
| | | var $module; |
| | | var $primary_id; |
| | | var $diffrec = array(); |
| | | |
| | | /** |
| | | * Laden der Tabellendefinition |
| | |
| | | $this->formDef = $form; |
| | | |
| | | $this->module = $module; |
| | | $wb = array(); |
| | | |
| | | if($module == '') { |
| | | if(is_file("lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng")) { |
| | | include_once("lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"); |
| | | } |
| | | } else { |
| | | if(is_file("../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng")) { |
| | | include_once("../$module/lib/lang/".$_SESSION["s"]["language"]."_".$this->formDef["name"].".lng"); |
| | | } |
| | | } |
| | | $this->wordbook = $wb; |
| | | |
| | |
| | | */ |
| | | function decode($record,$tab) { |
| | | if(!is_array($this->formDef['tabs'][$tab])) $app->error("Tab ist leer oder existiert nicht (TAB: $tab)."); |
| | | if(is_array($record)) { |
| | | $new_record = ''; |
| | | if(is_array($record)) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | return $new_record; |
| | | } |
| | | |
| | |
| | | $querystring = str_replace("{GROUPID}",$_SESSION["s"]["user"]["default_group"],$querystring); |
| | | $querystring = str_replace("{GROUPS}",$_SESSION["s"]["user"]["groups"],$querystring); |
| | | $table_idx = $this->formDef['db_table_idx']; |
| | | $querystring = str_replace("{RECORDID}",$record[$table_idx],$querystring); |
| | | |
| | | $tmp_recordid = (isset($record[$table_idx]))?$record[$table_idx]:0; |
| | | $querystring = str_replace("{RECORDID}",$tmp_recordid,$querystring); |
| | | unset($tmp_recordid); |
| | | |
| | | $querystring = str_replace("{AUTHSQL}",$this->getAuthSQL('r'),$querystring); |
| | | |
| | | // Getting the records |
| | |
| | | $val = $record[$key]; |
| | | |
| | | // If Datasource is set, get the data from there |
| | | if(is_array($field['datasource'])) { |
| | | if(isset($field['datasource']) && is_array($field['datasource'])) { |
| | | $field["value"] = $this->getDatasourceData($field, $record); |
| | | } |
| | | |
| | | switch ($field['formtype']) { |
| | | case 'SELECT': |
| | | $out = ''; |
| | | if(is_array($field['value'])) { |
| | | $out = ''; |
| | | foreach($field['value'] as $k => $v) { |
| | | $selected = ($k == $val)?' SELECTED':''; |
| | | $out .= "<option value='$k'$selected>$v</option>\r\n"; |
| | |
| | | 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': |
| | |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | |
| | | // If Datasource is set, get the data from there |
| | | if(is_array($field['datasource'])) { |
| | | if(@is_array($field['datasource'])) { |
| | | $field["value"] = $this->getDatasourceData($field, $record); |
| | | } |
| | | |
| | |
| | | if(is_array($field['value'])) { |
| | | $out = ''; |
| | | foreach($field['value'] as $k => $v) { |
| | | $selected = ($k == $val)?' SELECTED':''; |
| | | $out .= "<option value='$k'$selected>$v</option>\r\n"; |
| | | //$selected = ($k == $val)?' SELECTED':''; |
| | | $selected = ''; |
| | | $out .= "<option value='$k'$selected>$v</option>\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | | if(isset($out)) $new_record[$key] = $out; |
| | | break; |
| | | case 'MULTIPLE': |
| | | if(is_array($field['value'])) { |
| | |
| | | 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': |
| | |
| | | if(is_array($record)) { |
| | | foreach($this->formDef['tabs'][$tab]['fields'] as $key => $field) { |
| | | |
| | | if(is_array($field['validators'])) $this->validateField($key, $record[$key], $field['validators']); |
| | | if(isset($field['validators']) && is_array($field['validators'])) $this->validateField($key, (isset($record[$key]))?$record[$key]:'', $field['validators']); |
| | | |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | | if(!is_array($record[$key])) { |
| | | $new_record[$key] = addslashes($record[$key]); |
| | | if(!@is_array($record[$key])) { |
| | | $new_record[$key] = (isset($record[$key]))?addslashes($record[$key]):''; |
| | | } else { |
| | | $new_record[$key] = implode($field['separator'],$record[$key]); |
| | | } |
| | |
| | | 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]); |
| | | $new_record[$key] = (isset($record[$key]))?intval($record[$key]):0; |
| | | //if($new_record[$key] != $record[$key]) $new_record[$key] = $field['default']; |
| | | //if($key == 'refresh') die($record[$key]); |
| | | break; |
| | |
| | | } |
| | | |
| | | // The use of the field value is deprecated, use validators instead |
| | | if($field['regex'] != '') { |
| | | if(isset($field['regex']) && $field['regex'] != '') { |
| | | // Enable that "." matches also newlines |
| | | $field['regex'] .= 's'; |
| | | if(!preg_match($field['regex'], $record[$key])) { |
| | |
| | | function validateField($field_name, $field_value, $validators) { |
| | | |
| | | global $app; |
| | | |
| | | |
| | | $escape = '`'; |
| | | |
| | | // loop trough the validators |
| | | foreach($validators as $validator) { |
| | | |
| | |
| | | $validator['regex'] .= 's'; |
| | | if(!preg_match($validator['regex'], $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 'UNIQUE': |
| | |
| | | $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': |
| | |
| | | $validator_class = $validator['class']; |
| | | $validator_function = $validator['function']; |
| | | $app->uses($validator_class); |
| | | $this->errorMessage .= $app->$validator_class->$validator_function($validator); |
| | | $this->errorMessage .= $app->$validator_class->$validator_function($field_name, $field_value, $validator); |
| | | } else { |
| | | $this->errorMessage .= "Custom validator class or function is empty<br>\r\n"; |
| | | } |
| | | break; |
| | | default: |
| | | $this->errorMessage .= "Unknown Validator: ".$validator['type']; |
| | | break; |
| | | } |
| | | |
| | | |
| | |
| | | if(count($this->formDef['tabs'][$tab]['fields']) == 0) return ''; |
| | | |
| | | // checking permissions |
| | | if($this->formDef['auth'] == 'yes') { |
| | | if($this->formDef['auth'] == 'yes' && $_SESSION["s"]["user"]["typ"] != 'admin') { |
| | | if($action == "INSERT") { |
| | | if(!$this->checkPerm($primary_id,'i')) $this->errorMessage .= "Insert denied.<br>\r\n"; |
| | | } else { |
| | | if(!$this->checkPerm($primary_id,'u')) $this->errorMessage .= "Insert denied.<br>\r\n"; |
| | | if(!$this->checkPerm($primary_id,'u')) $this->errorMessage .= "Update denied.<br>\r\n"; |
| | | } |
| | | } |
| | | |
| | |
| | | if($field['formtype'] == 'PASSWORD') { |
| | | $sql_insert_key .= "`$key`, "; |
| | | if($field['encryption'] == 'CRYPT') { |
| | | $sql_insert_val .= "'".crypt($record[$key])."', "; |
| | | $salt="$1$"; |
| | | for ($n=0;$n<11;$n++) { |
| | | $salt.=chr(mt_rand(64,126)); |
| | | } |
| | | $salt.="$"; |
| | | // $salt = substr(md5(time()),0,2); |
| | | $record[$key] = crypt($record[$key],$salt); |
| | | } else { |
| | | $sql_insert_val .= "md5('".$record[$key]."'), "; |
| | | $record[$key] = md5($record[$key]); |
| | | } |
| | | $sql_insert_val .= "'".addslashes($record[$key])."', "; |
| | | } elseif ($field['formtype'] == 'CHECKBOX') { |
| | | $sql_insert_key .= "`$key`, "; |
| | | if($record[$key] == '') { |
| | | // if a checkbox is not set, we set it to the unchecked value |
| | | $sql_insert_val .= "'".$field['value'][0]."', "; |
| | | $record[$key] = $field['value'][0]; |
| | | } else { |
| | | $sql_insert_val .= "'".$record[$key]."', "; |
| | | } |
| | | } else { |
| | | $sql_insert_key .= "`$key`, "; |
| | | $sql_insert_val .= "'".$record[$key]."', "; |
| | | } |
| | | } else { |
| | | if($field['formtype'] == 'PASSWORD') { |
| | | if($field['encryption'] == 'CRYPT') { |
| | | $sql_update .= "`$key` = '".crypt($record[$key])."', "; |
| | | if(isset($field['encryption']) && $field['encryption'] == 'CRYPT') { |
| | | $salt="$1$"; |
| | | for ($n=0;$n<11;$n++) { |
| | | $salt.=chr(mt_rand(64,126)); |
| | | } |
| | | $salt.="$"; |
| | | // $salt = substr(md5(time()),0,2); |
| | | $record[$key] = crypt($record[$key],$salt); |
| | | } else { |
| | | $sql_update .= "`$key` = md5('".$record[$key]."'), "; |
| | | $record[$key] = md5($record[$key]); |
| | | } |
| | | $sql_update .= "`$key` = '".addslashes($record[$key])."', "; |
| | | } elseif ($field['formtype'] == 'CHECKBOX') { |
| | | if($record[$key] == '') { |
| | | // if a checkbox is not set, we set it to the unchecked value |
| | | $sql_update .= "`$key` = '".$field['value'][0]."', "; |
| | | $record[$key] = $field['value'][0]; |
| | | } else { |
| | | $sql_update .= "`$key` = '".$record[$key]."', "; |
| | | } |
| | | } else { |
| | | $sql_update .= "`$key` = '".$record[$key]."', "; |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | // we unset the password filed, if empty to tell the datalog function |
| | | // that the password has not been changed |
| | | unset($record[$key]); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } else { |
| | | if($primary_id != 0) { |
| | | $sql_update = substr($sql_update,0,-2); |
| | | $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | | $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->getAuthSQL('u')." AND ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | | if($sql_ext_where != '') $sql .= " and ".$sql_ext_where; |
| | | } else { |
| | | $app->error("Primary ID fehlt!"); |
| | | } |
| | | } |
| | | |
| | | // Daten in History tabelle speichern |
| | | if($this->errorMessage == '' and $this->formDef['db_history'] == 'yes') $this->datalogSave($action,$primary_id,$record); |
| | | |
| | | |
| | | return $sql; |
| | | } |
| | | |
| | |
| | | // definiere Tabs |
| | | foreach( $this->formDef["tabs"] as $key => $tab) { |
| | | |
| | | $tab['name'] = $key; |
| | | $tab['name'] = $key; |
| | | if($tab['name'] == $active_tab) { |
| | | |
| | | // Wenn Modul gesetzt, dann setzte template pfad relativ zu modul. |
| | | if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; |
| | | // Wenn Modul gesetzt, dann setzte template pfad relativ zu modul. |
| | | if($this->module != '') $tab["template"] = "../".$this->module."/".$tab["template"]; |
| | | |
| | | // überprüfe, ob das Template existiert, wenn nicht |
| | | // dann generiere das Template |
| | | if(!is_file($tab["template"])) { |
| | | $app->uses('tform_tpl_generator'); |
| | | $app->tform_tpl_generator->buildHTML($this->formDef,$tab['name']); |
| | | } |
| | | // überprüfe, ob das Template existiert, wenn nicht |
| | | // dann generiere das Template |
| | | |
| | | // Translate the title of the tab |
| | | $tab['title'] = $this->lng($tab['title']); |
| | | |
| | | if(!is_file($tab["template"])) { |
| | | $app->uses('tform_tpl_generator'); |
| | | $app->tform_tpl_generator->buildHTML($this->formDef,$tab['name']); |
| | | } |
| | | |
| | | $app->tpl->setInclude('content_tpl',$tab["template"]); |
| | | $app->tpl->setInclude('content_tpl',$tab["template"]); |
| | | $tab["active"] = 1; |
| | | $_SESSION["s"]["form"]["tab"] = $tab['name']; |
| | | } else { |
| | |
| | | $app->tpl->setVar('form_active_tab',$active_tab); |
| | | |
| | | // Set form title |
| | | $form_hint = '<b>'.$this->formDef["title"].'</b>'; |
| | | if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->formDef["description"]; |
| | | $form_hint = '<b>'.$this->lng($this->formDef["title"]).'</b>'; |
| | | if($this->formDef["description"] != '') $form_hint .= '<br><br>'.$this->lng($this->formDef["description"]); |
| | | $app->tpl->setVar('form_hint',$form_hint); |
| | | |
| | | // Set Wordbook for this form |
| | | |
| | | $app->tpl->setVar($this->wordbook); |
| | | } |
| | | } |
| | | |
| | | function getDataRecord($primary_id) { |
| | | global $app; |
| | | $escape = '`'; |
| | | $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | | return $app->db->queryOneRecord($sql); |
| | | } |
| | | |
| | | |
| | | |
| | | function datalogSave($action,$primary_id,$record_new) { |
| | | function datalogSave($action,$primary_id, $record_old, $record_new) { |
| | | global $app,$conf; |
| | | |
| | | // Füge Backticks nur bei unvollständigen Tabellennamen ein |
| | |
| | | $escape = '`'; |
| | | } |
| | | |
| | | if($action == "UPDATE") { |
| | | $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id; |
| | | $record_old = $app->db->queryOneRecord($sql); |
| | | } else { |
| | | $record_old = array(); |
| | | } |
| | | |
| | | $diffrec = array(); |
| | | |
| | | if(is_array($record_new)) { |
| | | |
| | | if(is_array($record_new) && count($record_new) > 0) { |
| | | foreach($record_new as $key => $val) { |
| | | if($record_old[$key] != $val) { |
| | | // Datensatz hat sich geändert |
| | | $diffrec[$key] = array('old' => $record_old[$key], |
| | | 'new' => $val); |
| | | if(@$record_old[$key] != $val) { |
| | | // Record has changed |
| | | $diffrec[$key] = array('old' => @$record_old[$key], |
| | | 'new' => $val); |
| | | } |
| | | } |
| | | } elseif(is_array($record_old)) { |
| | | foreach($record_old as $key => $val) { |
| | | if($record_new[$key] != $val) { |
| | | // Record has changed |
| | | $diffrec[$key] = array('new' => $record_new[$key], |
| | | 'old' => $val); |
| | | } |
| | | } |
| | | } |
| | | $this->diffrec = $diffrec; |
| | | |
| | | |
| | | // Full diff records for ISPConfig, they have a different format then the simple diffrec |
| | | $diffrec_full = array(); |
| | | |
| | | if(count($diffrec) > 0) { |
| | | $diffstr = $app->db->quote(serialize($diffrec)); |
| | | if(is_array($record_old) && count($record_old) > 0) { |
| | | foreach($record_old as $key => $val) { |
| | | //if(isset($record_new[$key]) && $record_new[$key] != $val) { |
| | | if(!isset($record_new[$key]) || $record_new[$key] != $val) { |
| | | // Record has changed |
| | | $diffrec_full['old'][$key] = $val; |
| | | $diffrec_full['new'][$key] = $record_new[$key]; |
| | | } else { |
| | | $diffrec_full['old'][$key] = $val; |
| | | $diffrec_full['new'][$key] = $val; |
| | | } |
| | | } |
| | | } elseif(is_array($record_new)) { |
| | | foreach($record_new as $key => $val) { |
| | | if(isset($record_new[$key]) && $record_old[$key] != $val) { |
| | | // Record has changed |
| | | $diffrec_full['new'][$key] = $val; |
| | | $diffrec_full['old'][$key] = $record_old[$key]; |
| | | } else { |
| | | $diffrec_full['new'][$key] = $val; |
| | | $diffrec_full['old'][$key] = $val; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 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)); |
| | | $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,action,tstamp,user,data) VALUES ('".$this->formDef['db_table']."','$dbidx','$action','".time()."','$username','$diffstr')"; |
| | | $app->db->query($sql); |
| | | // $action = ($action == 'INSERT')?'i':'u'; |
| | | |
| | | if($action == 'INSERT') $action = 'i'; |
| | | if($action == 'UPDATE') $action = 'u'; |
| | | if($action == 'DELETE') $action = 'd'; |
| | | $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); |
| | | } |
| | | |
| | | return true; |
| | |
| | | } |
| | | |
| | | function getAuthSQL($perm) { |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin') { |
| | | return '1'; |
| | | } else { |
| | | $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 .= ')'; |
| | | |
| | | $sql = '('; |
| | | $sql .= "(sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND sys_perm_user like '%$perm%') OR "; |
| | | $sql .= "(sys_groupid IN (".$_SESSION["s"]["user"]["groups"].") AND sys_perm_group like '%$perm%') OR "; |
| | | $sql .= "sys_perm_other like '%$perm%'"; |
| | | $sql .= ')'; |
| | | |
| | | return $sql; |
| | | return $sql; |
| | | } |
| | | } |
| | | |
| | | /* |
| | |
| | | } |
| | | } else { |
| | | $result = false; |
| | | if($this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true; |
| | | if($this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true; |
| | | if(@$this->formDef["auth_preset"]["userid"] == $_SESSION["s"]["user"]["userid"] && stristr($perm,$this->formDef["auth_preset"]["perm_user"])) $result = true; |
| | | if(@$this->formDef["auth_preset"]["groupid"] == $_SESSION["s"]["user"]["groupid"] && stristr($perm,$this->formDef["auth_preset"]["perm_group"])) $result = true; |
| | | if(@stristr($this->formDef["auth_preset"]["perm_other"],$perm)) $result = true; |
| | | |
| | | // if preset == 0, everyone can insert a record of this type |
| | |
| | | // Welcher Tab wird angezeigt |
| | | if($this->errorMessage == '') { |
| | | // wenn kein Fehler vorliegt |
| | | if($_REQUEST["next_tab"] != '') { |
| | | if(isset($_REQUEST["next_tab"]) && $_REQUEST["next_tab"] != '') { |
| | | // wenn nächster Tab bekannt |
| | | $active_tab = $_REQUEST["next_tab"]; |
| | | } else { |
| | |
| | | function getCurrentTab() { |
| | | return $_SESSION["s"]["form"]["tab"]; |
| | | } |
| | | |
| | | |
| | | // translation function for forms, tries the form wordbook first and if this fails, it tries the global wordbook |
| | | function lng($msg) { |
| | | global $app; |
| | | |
| | | if(isset($this->wordbook[$msg])) { |
| | | return $this->wordbook[$msg]; |
| | | } else { |
| | | return $app->lng($msg); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |