zarzuelo 6d010b9470 2013-01-18 Sergio Martin <sergio.martin@artica.es>
* operation/events/events_rss.php
	operation/events/export_csv.php
	operation/events/events_list.php
	operation/events/events.php
	operation/events/events.build_query.php: Fixed tag filters in
	event view and other filter elements missed in the csv and rss 
	tools. Merged from 4.0.3

	Now the code of query conditions for events is common for 
	all of the pages where is retrieved



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7505 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2013-01-18 09:56:46 +00:00

131 lines
4.3 KiB
PHP

<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
session_start();
require_once ("../../include/config.php");
require_once ("../../include/auth/mysql.php");
require_once ("../../include/functions.php");
require_once ("../../include/functions_db.php");
require_once ("../../include/functions_events.php");
require_once ("../../include/functions_agents.php");
require_once ('../../include/functions_groups.php');
session_write_close ();
$config["id_user"] = $_SESSION["id_usuario"];
if (! check_acl ($config["id_user"], 0, "ER") && ! check_acl ($config["id_user"], 0, "EW")) {
exit;
}
global $config;
// loading l10n tables, because of being invoked not through index.php.
$l10n = NULL;
if (file_exists ($config['homedir'].'/include/languages/'.$user_language.'.mo')) {
$l10n = new gettext_reader (new CachedFileReader ($config['homedir'].'/include/languages/'.$user_language.'.mo'));
$l10n->load_tables();
}
$offset = (int) get_parameter ("offset");
$ev_group = (int) get_parameter ("ev_group"); // group
$event_type = (string) get_parameter ("event_type", "all"); // 0 all
$severity = (int) get_parameter ("severity", -1); // -1 all
$status = (int) get_parameter ("status", -1); // -1 all, 0 only red, 1 only green
$id_agent = (int) get_parameter ("id_agent", -1);
$id_event = (int) get_parameter ("id_event", -1);
$event_view_hr = (int) get_parameter ("event_view_hr", $config["event_view_hr"]);
$id_user_ack = get_parameter ("id_user_ack", 0);
$search = io_safe_output(preg_replace ("/&([A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/", "&", rawurldecode (get_parameter ("search"))));
$text_agent = (string)get_parameter('text_agent', __("All"));
$tag_with_json = base64_decode(get_parameter("tag_with", '')) ;
$tag_with_json_clean = io_safe_output($tag_with_json);
$tag_with_base64 = base64_encode($tag_with_json_clean);
$tag_with = json_decode($tag_with_json_clean, true);
if (empty($tag_with)) $tag_with = array();
$tag_with = array_diff($tag_with, array(0 => 0));
$tag_without_json = base64_decode(get_parameter("tag_without", ''));
$tag_without_json_clean = io_safe_output($tag_without_json);
$tag_without_base64 = base64_encode($tag_without_json_clean);
$tag_without = json_decode($tag_without_json_clean, true);
if (empty($tag_without)) $tag_without = array();
$tag_without = array_diff($tag_without, array(0 => 0));
$filter_only_alert = (int)get_parameter('filter_only_alert', -1);
/////////////////////////////////////////////
// Build the condition of the events query
$sql_post = "";
$meta = false;
$id_user = $config['id_user'];
require('events.build_query.php');
// Now $sql_post have all the where condition
/////////////////////////////////////////////
switch ($config["dbtype"]) {
case "mysql":
case "postgresql":
case "oracle":
$sql = "SELECT *
FROM tevento
WHERE 1=1 ".$sql_post."
ORDER BY utimestamp DESC";
break;
}
$now = date ("Y-m-d");
// Show contentype header
Header ("Content-type: text/txt");
header ('Content-Disposition: attachment; filename="pandora_export_event'.$now.'.txt"');
echo "timestamp, agent, group, event, status, user, event_type, severity";
echo chr (13);
$new = true;
while ($event = db_get_all_row_by_steps_sql($new, $result, $sql)) {
$new = false;
if (!check_acl($config["id_user"], $event["id_grupo"], "ER") ||
(!check_acl($config["id_user"], 0, "PM") && $event["event_type"] == 'system'))
continue;
echo $event["timestamp"];
echo ",";
echo io_safe_output(agents_get_name($event["id_agente"]));
echo ",";
echo io_safe_output(groups_get_name($event["id_grupo"]));
echo ",";
echo io_safe_output($event["evento"]);
echo ",";
echo io_safe_output($event["estado"]);
echo ",";
echo io_safe_output($event["id_usuario"]);
echo ",";
echo io_safe_output($event["event_type"]);
echo ",";
echo $event["criticity"];
echo chr (13);
}
?>