X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_log.inc;h=af687c39e605b2c64bcdc03cd0d0f0bc9ed97470;hb=b6ceb3ba053010e9a0559d2569e29c229bafeeaa;hp=e41beba15e73fdb40f13d53a28ff3cda420d3641;hpb=81f633b7705e796c0645ce62036d3580a9a51461;p=gosa.git diff --git a/include/class_log.inc b/include/class_log.inc index e41beba15..af687c39e 100644 --- a/include/class_log.inc +++ b/include/class_log.inc @@ -45,9 +45,20 @@ class log { */ function log($action,$objecttype,$object,$changes_array = array(),$result = TRUE) { - global $config; - $this->config = $config; - $ui = get_userinfo(); + if(!is_array($changes_array)){ + trigger_error("log(string,string,string,array(),bool). Forth parameter must be an array."); + $changes_array = array(); + } + + $entry = array(); + if(!isset($_SESSION['config'])){ + $entry['user']= "unkown"; + }else{ + + $this->config = &$_SESSION['config']; + $ui = get_userinfo(); + $entry['user']= @$ui->dn; + } /* Create string out of changes */ $changes =""; @@ -57,9 +68,7 @@ class log { $changes = preg_replace("/,$/","",$changes ); /* Create data object */ - $entry = array(); $entry['timestamp'] = time(); - $entry['user'] = @$ui->dn; $entry['action'] = $action; $entry['objecttype']= $objecttype; $entry['object'] = $object; @@ -81,15 +90,15 @@ class log { }else{ if(!isset($this->config->current['LOGGING'])){ - @log::log_into_syslog($entry); + $this->log_into_syslog($entry); }else{ /* Start logging for configured methods */ if(isset($this->config->current['LOGGING']) && preg_match("/(^|,)syslog(,|$)/i",$this->config->current['LOGGING'])){ - @log::log_into_syslog($entry); + $this->log_into_syslog($entry); } if(isset($this->config->current['LOGGING']) && preg_match("/(^|,)mysql(,|$)/i",$this->config->current['LOGGING'])){ - @log::log_into_db($entry); + $this->log_into_db($entry); } } } @@ -103,7 +112,7 @@ class log { # $msgs[] = "Currently active user is empty."; # } - if(!isset($entry['action']) || !in_array($entry['action'],array("modify","create","remove","copy","snapshot","view","security"))){ + if(!isset($entry['action']) || !in_array($entry['action'],array("modify","create","remove","copy","snapshot","view","security","debug"))){ $msgs[] = "Invalid option specified '".$entry['action']."'"; } @@ -118,7 +127,7 @@ class log { /* This function is used to into the systems syslog */ function log_into_syslog($entry) { - $str = $entry['user']." ".$entry['action']." ".$entry['object']." from type ".$entry['objecttype']." ".$data." : Result was ".$entry['result']; + $str = $entry['user']." ".$entry['action']." ".$entry['object']." from type ".$entry['objecttype']." ".$entry['changes']." : Result was ".$entry['result']; gosa_log($str); } @@ -134,14 +143,14 @@ class log { } foreach($servers as $server_name => $server){ - - $con = mysql_pconnect($server['SERVER'],$server['USER'],$server['PWD']); + + $con = @mysql_pconnect($server_name,$server['USER'],$server['PWD']); if(!$con){ - print_red(sprintf(_("Could not connect to logging server %s."),$server['SERVER'])); + print_red(sprintf(_("Could not connect to logging server %s."),$server_name)); }else{ $db = mysql_select_db($server['DB'],$con); if(!$db){ - print_red(sprintf(_("Could not select database %s on server %s. Server ssys :%s"),$server['DB'],$server['SERVER'],mysql_error($con))); + @print_red(sprintf(_("Could not select database %s on server %s. Server says :%s"),$server['DB'],$server['SERVER'],mysql_error($con))); }else{ /* Create mysql syntax */ @@ -164,6 +173,7 @@ class log { } } + mysql_close($con); } } }