mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-09-28 12:29:01 +02:00
* 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
131 lines
4.3 KiB
PHP
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);
|
|
}
|
|
?>
|
|
|