X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_log.inc;h=daad88908e19a8211f9338350e61f0021f146f40;hb=1374a0a230c81a1974326e319b7576f4f1855afe;hp=ecc3bf16d9ccb543781218ff039c78a6835e3714;hpb=04d9837e72728c01a0449760b158bd8616065d84;p=gosa.git diff --git a/include/class_log.inc b/include/class_log.inc index ecc3bf16d..daad88908 100644 --- a/include/class_log.inc +++ b/include/class_log.inc @@ -43,14 +43,19 @@ class log { \sa log() */ - function log($action,$objecttype,$object,$changes_array = array(),$result = TRUE) + function log($action,$objecttype,$object,$changes_array = array(),$result = "") { + 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']; + $this->config = &$_SESSION['config']; $ui = get_userinfo(); $entry['user']= @$ui->dn; } @@ -93,7 +98,13 @@ class log { $this->log_into_syslog($entry); } if(isset($this->config->current['LOGGING']) && preg_match("/(^|,)mysql(,|$)/i",$this->config->current['LOGGING'])){ - $this->log_into_db($entry); + $res = $this->log_into_db($entry); + + if(!$res){ + global $config; + $config->current['LOGGING'] = preg_replace("/(^|,)mysql(,|$)/",",",$config->current['LOGGING']); + msg_dialog::display(_("Logging to MySQL disabled"),_("The logging to a MySQL database is now disabled for this session of GOsa, due to communication errors with the specified logging database."), INFO_DIALOG); + } } } } @@ -103,9 +114,6 @@ class log { function check($entry = array()) { $msgs = array(); - # if(!isset($entry['user']) || empty($entry['user'])){ - # $msgs[] = "Currently active user is empty."; - # } if(!isset($entry['action']) || !in_array($entry['action'],array("modify","create","remove","copy","snapshot","view","security","debug"))){ $msgs[] = "Invalid option specified '".$entry['action']."'"; @@ -138,14 +146,16 @@ class log { } foreach($servers as $server_name => $server){ - - $con = mysql_pconnect($server_name,$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)); + return(FALSE); }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))); + return(FALSE); }else{ /* Create mysql syntax */ @@ -164,12 +174,14 @@ class log { "; $res = mysql_query($query,$con); if(!$res){ - print_red(sprintf(_("Could not query database %s on server %s. Server ssys :%s"),$server['DB'],$server['SERVER'],mysql_error($con))); - + print_red(sprintf(_("Could not query database %s on server %s. Server says :%s"),$server['DB'],$server['SERVER'],mysql_error($con))); + return(FALSE); } } + mysql_close($con); } } + return(TRUE); } }