X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_log.inc;h=ebaeff5a611b0eaf079a05c1f0ed3c178a1336aa;hb=359619a1d3b790bd6a3f08b8c609ce57777d281f;hp=4b846e5722e26f1811178f9ba6aac370a5a51eb7;hpb=d130f455f0e05f65d2d620c325050916125e8215;p=gosa.git diff --git a/gosa-core/include/class_log.inc b/gosa-core/include/class_log.inc index 4b846e572..ebaeff5a6 100644 --- a/gosa-core/include/class_log.inc +++ b/gosa-core/include/class_log.inc @@ -30,8 +30,6 @@ */ class log { - var $LOG_TO_MYSQL = FALSE; - var $LOG_TO_SYSLOG= FALSE; var $config; /*! \brief logging constructor @@ -76,33 +74,21 @@ class log { $entry['changes'] = $changes; $entry['result'] = $result; - if(!isset($this->config) || ( $this->config->get_cfg_value("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); msg_dialog::display(_("Internal error"), sprintf(_("Logging failed: %s"), $msg), ERROR_DIALOG); } - }else{ - - if (isset ($this->config)){ - if ($this->config->get_cfg_value("logging") == ""){ - $this->log_into_syslog($entry); - }else{ - - /* Start logging for configured methods */ - if(preg_match("/(^|,)syslog(,|$)/i",$this->config->get_cfg_value("logging"))){ - $this->log_into_syslog($entry); - } - if(preg_match("/(^|,)mysql(,|$)/i",$this->config->get_cfg_value("logging"))){ - $this->log_into_db($entry); - } - } + if(is_object($config) && preg_match("/true/i",$config->get_cfg_value("logging",""))){ + $this->log_into_syslog($entry); } } } @@ -127,126 +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); } - - function disable_mysql_log($server,$error) - { - global $config; - msg_dialog::display(_("Error"), $error, ERROR_DIALOG); - msg_dialog::display(_("MySQL error"),sprintf(_("Logging to MySQL database will be disabled for server '%s'!"),$server), INFO_DIALOG); - unset($config->data['SERVERS']['LOGGING'][$server]) ; - $this->config = $config; - } - - - /* Log into configured logging databses.*/ - function log_into_db($entry) - { - if(isset($this->config->data['SERVERS']['LOGGING'])){ - $servers = $this->config->data['SERVERS']['LOGGING']; - }else{ - return(FALSE); - } - - /* Log into each configured server - */ - foreach($servers as $server_name => $server){ - - $error = ""; - - /* Connect to the database - */ - $con = @mysql_pconnect($server_name,$server['USER'],$server['PWD']); - if(!$con){ - $error = msgPool::dbconnect(_("MySQL logging"),mysql_error()); - $this->disable_mysql_log($server_name,$error); - continue; - } - - /* Check if the database is available - */ - $db = @mysql_select_db($server['DB'],$con); - if(!$db){ - $error = msgPool::dbselect(_("MySQL logging"),mysql_error()); - $this->disable_mysql_log($server_name,$error); - continue; - } - - /* Check if our current location is already registerd - in this case get its id. - If it wasn't registered yet, create it. - */ - $base = mysql_escape_string($this->config->current['BASE']); - $query= "SELECT id FROM gosa_locations WHERE location=\"".$base."\";"; - $res = mysql_query($query); - if(!$res){ - $error = msgPool::dbquery(_("MySQL logging"),mysql_error()); - $this->disable_mysql_log($server_name,$error); - continue; - } - - $location_id = -1; - while($attrs = mysql_fetch_assoc($res)){ - $location_id = $attrs['id']; - break; - } - - /* No location found that matches our location. - Create it. - */ - if($location_id == -1){ - $query = "INSERT INTO gosa_locations (location) VALUES ('".$base."');"; - if(!mysql_query($query,$con)){ - $error = msgPool::dbquery(_("MySQL logging"),mysql_error()); - $this->disable_mysql_log($server_name,$error); - continue; - } - - /* Try to detect the location again - */ - $query= "SELECT id FROM gosa_locations WHERE location=\"".$base."\";"; - $res = mysql_query($query); - $location_id = -1; - while($attrs = mysql_fetch_assoc($res)){ - $location_id = $attrs['id']; - break; - } - if($location_id == -1){ - $error = sprintf(_("Cannot add location to the database!")."

"._("Error").": %s",mysql_error($con)); - $this->disable_mysql_log($server_name,$error); - continue; - } - } - - /* Create mysql syntax */ - $query ="INSERT INTO gosa_log - (timestamp,user,action,objecttype,object,changes,result,location_id) - VALUES - ( - \"".mysql_escape_string($entry['timestamp'])."\", - \"".mysql_escape_string($entry['user'])."\", - \"".mysql_escape_string($entry['action'])."\", - \"".mysql_escape_string($entry['objecttype'])."\", - \"".mysql_escape_string($entry['object'])."\", - \"".mysql_escape_string($entry['changes'])."\", - \"".mysql_escape_string($entry['result'])."\", - \"".mysql_escape_string($location_id)."\" - ); - "; - $res = mysql_query($query,$con); - if(!$res){ - $error = dbquery(_("MySQL logging"), mysql_error()); - $this->disable_mysql_log($server_name,$error); - continue; - } - if(is_resource($con)){ - mysql_close($con); - } - } - } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: