From 89e4554cb0bbf4b515f1e9f4ec6d48d0a95706c5 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Sun, 26 Sep 2010 09:36:55 -0400 Subject: [PATCH] Merged revisions 1917-2036 from trunk. --- interface/lib/classes/remoting_lib.inc.php | 71 ++++++++++++++++++++++++++++++----- 1 files changed, 60 insertions(+), 11 deletions(-) diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 38d9010..8754760 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -148,6 +148,7 @@ $this->sys_userid = 1; $this->sys_default_group = 1; $this->sys_groups = 1; + $_SESSION["s"]["user"]["typ"] = 'admin'; } else { //* load system user - try with sysuser and before with userid (workarrond) /* @@ -165,6 +166,9 @@ $this->sys_userid = $user['userid']; $this->sys_default_group = $user['default_group']; $this->sys_groups = $user['groups']; + // $_SESSION["s"]["user"]["typ"] = $user['typ']; + // we have to force admin priveliges for the remoting API as some function calls might fail otherwise. + $_SESSION["s"]["user"]["typ"] = 'admin'; } return true; @@ -190,9 +194,16 @@ $new_record[$key] = stripslashes($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; @@ -304,12 +315,22 @@ $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') { + list($tag,$monat,$jahr) = explode('.',$record[$key]); + $new_record[$key] = $jahr.'-'.$monat.'-'.$tag; + //$tmp = strptime($record[$key],$this->dateformat); + //$new_record[$key] = ($tmp['tm_year']+1900).'-'.($tmp['tm_mon']+1).'-'.$tmp['tm_mday']; + } else { + $new_record[$key] = '0000-00-00'; } break; case 'INTEGER': @@ -322,6 +343,18 @@ break; case 'CURRENCY': $new_record[$key] = str_replace(",",".",$record[$key]); + break; + + case 'DATETIME': + if (is_array($record[$key])) + { + $filtered_values = array_map(create_function('$item','return (int)$item;'), $record[$key]); + extract($filtered_values, EXTR_PREFIX_ALL, '_dt'); + + if ($_dt_day != 0 && $_dt_month != 0 && $_dt_year != 0) { + $new_record[$key] = date( 'Y-m-d H:i:s', mktime($_dt_hour, $_dt_minute, $_dt_second, $_dt_month, $_dt_day, $_dt_year) ); + } + } break; } @@ -490,8 +523,10 @@ $sql_insert_key .= "`$key`, "; if($field['encryption'] == 'CRYPT') { $salt="$1$"; + $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; for ($n=0;$n<8;$n++) { - $salt.=chr(mt_rand(64,126)); + //$salt.=chr(mt_rand(64,126)); + $salt.=$base64_alphabet[mt_rand(0,63)]; } $salt.="$"; // $salt = substr(md5(time()),0,2); @@ -517,8 +552,10 @@ if($field['formtype'] == 'PASSWORD') { if($field['encryption'] == 'CRYPT') { $salt="$1$"; + $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; for ($n=0;$n<8;$n++) { - $salt.=chr(mt_rand(64,126)); + //$salt.=chr(mt_rand(64,126)); + $salt.=$base64_alphabet[mt_rand(0,63)]; } $salt.="$"; // $salt = substr(md5(time()),0,2); @@ -627,8 +664,20 @@ global $app,$sql1; $username = $app->db->quote($params["username"]); $password = $app->db->quote($params["password"]); - $modules = 'mail,sites,dns,tools'; - $startmodule = 'mail'; + if(!isset($params['modules'])) { + $modules = 'dashboard,mail,sites,dns,tools'; + } else { + $modules = $app->db->quote($params['modules']); + } + if(!isset($params['startmodule'])) { + $startmodule = 'dashboard'; + } else { + $startmodule = $app->db->quote($params["startmodule"]); + if(!preg_match('/'.$startmodule.'/',$modules)) { + $_modules = explode(',',$modules); + $startmodule=$_modules[0]; + } + } $usertheme = $app->db->quote($params["usertheme"]); $type = 'user'; $active = 1; @@ -659,6 +708,10 @@ function datalogSave($action,$primary_id, $record_old, $record_new) { global $app,$conf; + + $app->db->datalogSave($this->formDef['db_table'], $action, $this->formDef['db_table_idx'], $primary_id, $record_old, $record_new); + return true; + /* if(stristr($this->formDef['db_table'],'.')) { $escape = ''; @@ -715,11 +768,6 @@ } } - /* - echo "<pre>"; - print_r($diffrec_full); - echo "</pre>"; - */ // 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; @@ -739,6 +787,7 @@ } return true; + */ } -- Gitblit v1.9.1