X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_log.inc;h=ebaeff5a611b0eaf079a05c1f0ed3c178a1336aa;hb=359619a1d3b790bd6a3f08b8c609ce57777d281f;hp=66db8d0019d3012038a4e42ee27f409dee8b78f0;hpb=1e73841b2c486817aeb75934af3496b8bfd7a184;p=gosa.git diff --git a/gosa-core/include/class_log.inc b/gosa-core/include/class_log.inc index 66db8d001..ebaeff5a6 100644 --- a/gosa-core/include/class_log.inc +++ b/gosa-core/include/class_log.inc @@ -1,24 +1,25 @@ \version 2.6 @@ -29,8 +30,6 @@ */ class log { - var $LOG_TO_MYSQL = FALSE; - var $LOG_TO_SYSLOG= FALSE; var $config; /*! \brief logging constructor @@ -51,11 +50,11 @@ class log { } $entry = array(); - if(!session::is_set('config')){ + if(!session::global_is_set('config')){ $entry['user']= "unkown"; }else{ - $this->config = session::get('config'); + $this->config = session::global_get('config'); $ui = get_userinfo(); $entry['user']= @$ui->dn; } @@ -75,37 +74,21 @@ class log { $entry['changes'] = $changes; $entry['result'] = $result; - if(!isset($this->config->current['LOGGING']) && empty($entry['user'])){ + if(!isset($this->config) && empty($entry['user'])){ $entry['user'] = "unknown"; } - + /* Check if all given values are valid */ + global $config; $msgs = @log::check($entry); if(count($msgs)){ foreach($msgs as $msg){ trigger_error("Logging failed, reason was: ".$msg); - print_red("Logging failed, reason was: ".$msg); + msg_dialog::display(_("Internal error"), sprintf(_("Logging failed: %s"), $msg), ERROR_DIALOG); } - }else{ - - if(!isset($this->config->current['LOGGING'])){ + if(is_object($config) && preg_match("/true/i",$config->get_cfg_value("logging",""))){ $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'])){ - $this->log_into_syslog($entry); - } - if(isset($this->config->current['LOGGING']) && preg_match("/(^|,)mysql(,|$)/i",$this->config->current['LOGGING'])){ - $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); - } - } } } } @@ -116,11 +99,11 @@ class log { $msgs = array(); if(!isset($entry['action']) || !in_array($entry['action'],array("modify","create","remove","copy","snapshot","view","security","debug"))){ - $msgs[] = "Invalid option specified '".$entry['action']."'"; + $msgs[] = sprintf(_("Invalid option '%s' specified!"), $entry['action']); } if(!isset($entry['objecttype']) || empty($entry['objecttype'])){ - $msgs[] = "Specified objectType is empty or invalid."; + $msgs[] = _("Specified objectType is empty or invalid!"); } return($msgs); @@ -130,59 +113,15 @@ 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']." ".$entry['changes']." : Result was ".$entry['result']; + $str= ""; + if (empty($entry['object']) && empty($entry['changes'])) { + $str = "(".$entry['action'].") ".$entry['objecttype'].": ".$entry['result']; + } else { + $str = "(".$entry['action'].") ".$entry['object']." of type ".$entry['objecttype']." ".$entry['changes'].": ".$entry['result']; + } gosa_log($str); } - - /* Log into configured logging databses.*/ - function log_into_db($entry) - { - if(isset($this->config->data['SERVERS']['LOGGING'])){ - $servers = $this->config->data['SERVERS']['LOGGING']; - }else{ - print_red(_("You have enabled the logging into mysql databse, but there are no logging servers available.")); - return(FALSE); - } - - foreach($servers as $server_name => $server){ - - $con = @mysql_pconnect($server_name,$server['USER'],$server['PWD']); - if(!$con){ - 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 says :%s"),$server['DB'],$server['SERVER'],mysql_error($con))); - return(FALSE); - }else{ - - /* Create mysql syntax */ - $query ="INSERT INTO gosa_log - (timestamp,user,action,objecttype,object,changes,result) - VALUES - ( - \"".addslashes($entry['timestamp'])."\", - \"".addslashes($entry['user'])."\", - \"".addslashes($entry['action'])."\", - \"".addslashes($entry['objecttype'])."\", - \"".addslashes($entry['object'])."\", - \"".addslashes($entry['changes'])."\", - \"".addslashes($entry['result'])."\" - ); - "; - $res = mysql_query($query,$con); - if(!$res){ - 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); - } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: