299 lines
8.8 KiB
PHP
299 lines
8.8 KiB
PHP
<?php
|
|
|
|
// Pandora FMS - https://pandorafms.com
|
|
// ==================================================
|
|
// Copyright (c) 2005-2023 Pandora FMS
|
|
// Please see https://pandorafms.com/community/ 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; 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.
|
|
global $config;
|
|
require_once $config['homedir'].'/include/functions_reporting.php';
|
|
|
|
// Load enterprise extensions
|
|
enterprise_include('operation/reporting/custom_reporting.php');
|
|
|
|
$searchAgents = $searchAlerts = $searchModules = check_acl($config['id_user'], 0, 'AR');
|
|
$searchUsers = (check_acl($config['id_user'], 0, 'AR'));
|
|
$searchPolicies = (check_acl($config['id_user'], 0, 'AR') && enterprise_installed());
|
|
$searchReports = $searchGraphs = check_acl($config['id_user'], 0, 'RR');
|
|
$searchMaps = check_acl($config['id_user'], 0, 'VR');
|
|
$searchMain = true;
|
|
$searchHelps = true;
|
|
|
|
$arrayKeywords = explode(' ', $config['search_keywords']);
|
|
|
|
$temp = [];
|
|
foreach ($arrayKeywords as $keyword) {
|
|
// Remember, $keyword is already pass a safeinput filter.
|
|
array_push($temp, '%'.$keyword.'%');
|
|
}
|
|
|
|
$stringSearchSQL = implode('', $temp);
|
|
$stringSearchSQL = str_replace('_', '\_', $stringSearchSQL);
|
|
|
|
$_SESSION['stringSearchSQL'] = $stringSearchSQL;
|
|
if ($config['search_category'] == 'all') {
|
|
$searchTab = 'main';
|
|
} else {
|
|
$searchTab = $config['search_category'];
|
|
}
|
|
|
|
// INI SECURITY ACL
|
|
if ((!$searchAgents && !$searchUsers && !$searchMaps)
|
|
|| (!$searchUsers && $searchTab == 'users')
|
|
|| (!$searchPolicies && $searchTab == 'policies')
|
|
|| (!$searchAgents && ($searchTab == 'agents' || $searchTab == 'alerts'))
|
|
|| (!$searchGraphs && ($searchTab == 'graphs' || $searchTab == 'maps' || $searchTab == 'reports'))
|
|
) {
|
|
$searchTab = '';
|
|
}
|
|
|
|
// END SECURITY ACL
|
|
$offset = get_parameter('offset', 0);
|
|
$order = null;
|
|
|
|
$sortField = get_parameter('sort_field');
|
|
$sort = get_parameter('sort', 'none');
|
|
$selected = 'border: 1px solid black;';
|
|
$selected_module = '_green';
|
|
if ($searchMain) {
|
|
$main_tab = [
|
|
'text' => "<a href='index.php?search_category=main&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/zoom_mc.png',
|
|
true,
|
|
[
|
|
'title' => __('Global search'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'main',
|
|
];
|
|
} else {
|
|
$main_tab = '';
|
|
}
|
|
|
|
if ($searchAgents) {
|
|
$agents_tab = [
|
|
'text' => "<a href='index.php?search_category=agents&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/op_monitoring.png',
|
|
true,
|
|
[
|
|
'title' => __('Agents'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'agents',
|
|
];
|
|
} else {
|
|
$agents_tab = '';
|
|
}
|
|
|
|
if ($searchUsers) {
|
|
$users_tab = [
|
|
'text' => "<a href='index.php?search_category=users&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/op_workspace.png',
|
|
true,
|
|
[
|
|
'title' => __('Users'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'users',
|
|
];
|
|
} else {
|
|
$users_tab = '';
|
|
}
|
|
|
|
if ($searchAlerts) {
|
|
$alerts_tab = [
|
|
'text' => "<a href='index.php?search_category=alerts&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/op_alerts.png',
|
|
true,
|
|
[
|
|
'title' => __('Alerts'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'alerts',
|
|
];
|
|
} else {
|
|
$alerts_tab = '';
|
|
}
|
|
|
|
if ($searchGraphs) {
|
|
$graphs_tab = [
|
|
'text' => "<a href='index.php?search_category=graphs&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/chart.png',
|
|
true,
|
|
[
|
|
'title' => __('Graphs'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'graphs',
|
|
];
|
|
} else {
|
|
$graphs_tab = '';
|
|
}
|
|
|
|
if ($searchReports) {
|
|
$reports_tab = [
|
|
'text' => "<a href='index.php?search_category=reports&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/op_reporting.png',
|
|
true,
|
|
[
|
|
'title' => __('Reports'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'reports',
|
|
];
|
|
} else {
|
|
$reports_tab = '';
|
|
}
|
|
|
|
if ($searchMaps) {
|
|
$maps_tab = [
|
|
'text' => "<a href='index.php?search_category=maps&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/visual_console.png',
|
|
true,
|
|
[
|
|
'title' => __('Visual consoles'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'maps',
|
|
];
|
|
} else {
|
|
$maps_tab = '';
|
|
}
|
|
|
|
if ($searchModules) {
|
|
$modules_tab = [
|
|
'text' => "<a href='index.php?search_category=modules&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/brick.png',
|
|
true,
|
|
[
|
|
'title' => __('Modules'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'modules',
|
|
];
|
|
} else {
|
|
$modules_tab = '';
|
|
}
|
|
|
|
if ($searchPolicies) {
|
|
$policies_tab = [
|
|
'text' => "<a href='index.php?search_category=policies&keywords=".$config['search_keywords']."&head_search_keywords=Search'>".html_print_image(
|
|
'images/policy@svg.svg',
|
|
true,
|
|
[
|
|
'title' => __('Policies'),
|
|
'class' => 'main_menu_icon invert_filter',
|
|
]
|
|
).'</a>',
|
|
'active' => $searchTab == 'policies',
|
|
];
|
|
} else {
|
|
$policies_tab = '';
|
|
}
|
|
|
|
$onheader = [
|
|
'main' => $main_tab,
|
|
'agents' => $agents_tab,
|
|
'modules' => $modules_tab,
|
|
'alerts' => $alerts_tab,
|
|
'users' => $users_tab,
|
|
'graphs' => $graphs_tab,
|
|
'reports' => $reports_tab,
|
|
'maps' => $maps_tab,
|
|
'policies' => $policies_tab,
|
|
];
|
|
|
|
ui_print_standard_header(
|
|
__('Search').': "'.$config['search_keywords'].'"',
|
|
'images/zoom_mc.png',
|
|
false,
|
|
'',
|
|
false,
|
|
$onheader,
|
|
[
|
|
[
|
|
'link' => '',
|
|
'label' => __('Search'),
|
|
],
|
|
]
|
|
);
|
|
|
|
$only_count = false;
|
|
|
|
switch ($searchTab) {
|
|
case 'main':
|
|
$only_count = true;
|
|
|
|
include_once 'search_agents.getdata.php';
|
|
include_once 'search_agents.php';
|
|
include_once 'search_users.getdata.php';
|
|
|
|
// ------------------- DISABLED FOR SOME INSTALLATIONS----------
|
|
// ~ require_once('search_alerts.getdata.php');
|
|
// -------------------------------------------------------------
|
|
include_once 'search_graphs.getdata.php';
|
|
include_once 'search_reports.getdata.php';
|
|
include_once 'search_maps.getdata.php';
|
|
include_once 'search_modules.getdata.php';
|
|
include_once 'search_helps.getdata.php';
|
|
include_once 'search_policies.getdata.php';
|
|
|
|
include_once 'search_main.php';
|
|
break;
|
|
|
|
case 'agents':
|
|
include_once 'search_agents.getdata.php';
|
|
include_once 'search_agents.php';
|
|
break;
|
|
|
|
case 'users':
|
|
include_once 'search_users.getdata.php';
|
|
include_once 'search_users.php';
|
|
break;
|
|
|
|
case 'alerts':
|
|
include_once 'search_alerts.getdata.php';
|
|
include_once 'search_alerts.php';
|
|
break;
|
|
|
|
case 'graphs':
|
|
include_once 'search_graphs.getdata.php';
|
|
include_once 'search_graphs.php';
|
|
break;
|
|
|
|
case 'reports':
|
|
include_once 'search_reports.getdata.php';
|
|
include_once 'search_reports.php';
|
|
break;
|
|
|
|
case 'maps':
|
|
include_once 'search_maps.getdata.php';
|
|
include_once 'search_maps.php';
|
|
break;
|
|
|
|
case 'modules':
|
|
include_once 'search_modules.getdata.php';
|
|
include_once 'search_modules.php';
|
|
break;
|
|
|
|
case 'policies':
|
|
include_once 'search_policies.getdata.php';
|
|
include_once 'search_policies.php';
|
|
|
|
break;
|
|
}
|