YOU DO NOT HAVE RIGHTS FOR TREE VIEW"; exit;
}
/* if cacti's builtin authentication is turned on then make sure to take
graph permissions into account here. if a user does not have rights to a
particular graph; do not show it. they will get an access denied message
if they try and view the graph directly. */
$access_denied = false;
$tree_parameters = array();
if ((!isset($_GET["tree_id"])) && (isset($_SESSION['dhtml_tree']))) {
unset($_SESSION["dhtml_tree"]);
}
if (isset($_GET["tree_id"])) {
$_SESSION["sess_graph_view_last_tree"] = get_browser_query_string();
}
$tree_dropdown_html = draw_tree_dropdown((isset($_GET["tree_id"]) ? $_GET["tree_id"] : "0"));
/* don't even print the table if there is not >1 tree */
if ((!empty($tree_dropdown_html)) && (read_graph_config_option("default_tree_view_mode") == "1")) {
print "
\n";
}
if (isset($_SESSION["sess_view_tree_id"])) {
if (read_config_option("auth_method") != 0) {
/* take tree permissions into account here, if the user does not have permission
give an "access denied" message */
$access_denied = !(is_tree_allowed($_SESSION["sess_view_tree_id"]));
if ($access_denied == true) {
print "ACCESS DENIED"; exit;
}
}
if (read_graph_config_option("default_tree_view_mode") == "1") {
grow_graph_tree($_SESSION["sess_view_tree_id"], (!empty($start_branch) ? $start_branch : 0), isset($_SESSION["sess_user_id"]) ? $_SESSION["sess_user_id"] : 0, $tree_parameters);
}elseif (read_graph_config_option("default_tree_view_mode") == "2") {
grow_right_pane_tree((isset($_GET["tree_id"]) ? $_GET["tree_id"] : 0), (isset($_GET["leaf_id"]) ? $_GET["leaf_id"] : 0), (isset($_GET["host_group_data"]) ? urldecode($_GET["host_group_data"]) : 0));
}
}
break;
case 'preview':
if ((read_config_option("auth_method") != 0) && (empty($current_user["show_preview"]))) {
print "YOU DO NOT HAVE RIGHTS FOR PREVIEW VIEW"; exit;
}
/* ================= input validation ================= */
input_validate_input_number(get_request_var_request("host_id"));
input_validate_input_number(get_request_var_request("graph_template_id"));
input_validate_input_number(get_request_var_request("page"));
input_validate_input_number(get_request_var_request("rows"));
/* ==================================================== */
/* clean up search string */
if (isset($_REQUEST["filter"])) {
$_REQUEST["filter"] = sanitize_search_string(get_request_var_request("filter"));
}
/* reset the graph list on a new viewing */
if (!isset($_REQUEST["page"])) {
$_REQUEST["page"] = 1;
}
/* reset the page counter to '1' if a search in initiated */
if (isset($_REQUEST["filter"])) {
$_REQUEST["page"] = "1";
}
/* if the user pushed the 'clear' button */
if (isset($_REQUEST["clear_x"])) {
kill_session_var("sess_graph_view_current_page");
kill_session_var("sess_graph_view_filter");
kill_session_var("sess_graph_view_graph_template");
kill_session_var("sess_graph_view_host");
kill_session_var("sess_graph_view_rows");
unset($_REQUEST["page"]);
unset($_REQUEST["rows"]);
unset($_REQUEST["filter"]);
unset($_REQUEST["host_id"]);
unset($_REQUEST["graph_template_id"]);
unset($_REQUEST["graph_list"]);
unset($_REQUEST["graph_add"]);
unset($_REQUEST["graph_remove"]);
}else{
/* if any of the settings changed, reset the page number */
$changed = false;
$changed += check_changed("host_id", "sess_graph_view_host");
$changed += check_changed("rows", "sess_graph_view_rows");
$changed += check_changed("graph_template_id", "sess_graph_view_graph_template");
$changed += check_changed("filter", "sess_graph_view_filter");
if ($changed) $_REQUEST["page"] = 1;
}
load_current_session_value("host_id", "sess_graph_view_host", "0");
load_current_session_value("graph_template_id", "sess_graph_view_graph_template", "0");
load_current_session_value("filter", "sess_graph_view_filter", "");
load_current_session_value("page", "sess_graph_view_current_page", "1");
load_current_session_value("rows", "sess_graph_view_rows", "-1");
/* include graph view filter selector */
html_start_box("Graph Filters", "100%", $colors["header"], "3", "center", "");
?>
|
|
|
|
$value) {
$graph_array[$i] = $item;
$i++;
}
if ((isset($graph_array)) && (sizeof($graph_array) > 0)) {
/* build sql string including each graph the user checked */
$sql_or = "AND " . array_to_sql_or($graph_array, "graph_templates_graph.local_graph_id");
/* clear the filter vars so they don't affect our results */
$_REQUEST["filter"] = "";
$_REQUEST["host_id"] = "0";
$set_rra_id = empty($rra_id) ? read_graph_config_option("default_rra_id") : get_request_var("rra_id");
}
}
}
$sql_base = "FROM (graph_templates_graph,graph_local)
$sql_join
$sql_where
" . (empty($sql_where) ? "WHERE" : "AND") . " graph_templates_graph.local_graph_id > 0
AND graph_templates_graph.local_graph_id=graph_local.id
AND graph_templates_graph.title_cache like '%%" . get_request_var_request("filter") . "%%'
" . (empty($_REQUEST["host_id"]) ? "" : " and graph_local.host_id=" . get_request_var_request("host_id")) . "
" . (empty($_REQUEST["graph_template_id"]) ? "" : " and graph_local.graph_template_id=" . get_request_var_request("graph_template_id")) . "
$sql_or";
$total_rows = count(db_fetch_assoc("SELECT " .
"graph_templates_graph.local_graph_id " .
$sql_base));
$graphs = db_fetch_assoc("SELECT " .
"graph_templates_graph.local_graph_id, " .
"graph_templates_graph.height, " .
"graph_templates_graph.title_cache " .
$sql_base . " " .
"GROUP BY graph_templates_graph.local_graph_id " .
"ORDER BY graph_templates_graph.title_cache " .
"limit " . ($_REQUEST["rows"]*($_REQUEST["page"]-1)) . "," . $_REQUEST["rows"]);
/* do some fancy navigation url construction so we don't have to try and rebuild the url string */
if (ereg("page=[0-9]+",basename($_SERVER["QUERY_STRING"]))) {
$nav_url = str_replace("page=" . get_request_var_request("page"), "page=", get_browser_query_string());
}else{
$nav_url = get_browser_query_string() . (substr_count(get_browser_query_string(), "?") ? "&":"?") . "page=&host_id=" . get_request_var_request("host_id");
}
$nav_url = preg_replace("/((\?|&)host_id=[0-9]+|(\?|&)filter=[a-zA-Z0-9]*)/", "", $nav_url);
html_start_box("", "100%", $colors["header"], "1", "center", "");
html_nav_bar($colors["header"], read_graph_config_option("num_columns"), get_request_var_request("page"), $_REQUEST["rows"], $total_rows, $nav_url);
if (read_graph_config_option("thumbnail_section_preview") == "on") {
html_graph_thumbnail_area($graphs, "","graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end());
}else{
html_graph_area($graphs, "", "graph_start=" . get_current_graph_start() . "&graph_end=" . get_current_graph_end());
}
html_nav_bar($colors["header"], read_graph_config_option("num_columns"), get_request_var_request("page"), $_REQUEST["rows"], $total_rows, $nav_url);
html_end_box();
break;
case 'list':
if ((read_config_option("auth_method") != 0) && (empty($current_user["show_list"]))) {
print "YOU DO NOT HAVE RIGHTS FOR LIST VIEW"; exit;
}
/* ================= input validation ================= */
input_validate_input_number(get_request_var_request("host_id"));
input_validate_input_number(get_request_var_request("graph_template_id"));
input_validate_input_number(get_request_var_request("rows"));
/* ==================================================== */
/* clean up search string */
if (isset($_REQUEST["filter"])) {
$_REQUEST["filter"] = sanitize_search_string(get_request_var_request("filter"));
}
/* reset the graph list on a new viewing */
if (!isset($_REQUEST["page"])) {
$_REQUEST["graph_list"] = "";
$_REQUEST["page"] = 1;
}
/* if the user pushed the 'clear' button */
if (isset($_REQUEST["clear_x"])) {
kill_session_var("sess_graph_view_list_current_page");
kill_session_var("sess_graph_view_list_filter");
kill_session_var("sess_graph_view_list_host");
kill_session_var("sess_graph_view_list_graph_template");
kill_session_var("sess_graph_view_list_rows");
kill_session_var("sess_graph_view_list_graph_list");
unset($_REQUEST["page"]);
unset($_REQUEST["rows"]);
unset($_REQUEST["filter"]);
unset($_REQUEST["host_id"]);
unset($_REQUEST["graph_template_id"]);
unset($_REQUEST["graph_list"]);
unset($_REQUEST["graph_add"]);
unset($_REQUEST["graph_remove"]);
}else{
/* if any of the settings changed, reset the page number */
$changed = false;
$changed += check_changed("host_id", "sess_graph_view_list_host");
$changed += check_changed("rows", "sess_graph_view_list_rows");
$changed += check_changed("graph_template_id", "sess_graph_view_list_graph_template");
$changed += check_changed("filter", "sess_graph_view_list_filter");
if ($changed) $_REQUEST["page"] = 1;
}
load_current_session_value("host_id", "sess_graph_view_list_host", "0");
load_current_session_value("graph_template_id", "sess_graph_view_list_graph_template", "0");
load_current_session_value("filter", "sess_graph_view_list_filter", "");
load_current_session_value("page", "sess_graph_view_list_current_page", "1");
load_current_session_value("rows", "sess_graph_view_list_rows", "-1");
load_current_session_value("graph_list", "sess_graph_view_list_graph_list", "");
/* save selected graphs into url */
if (!empty($_REQUEST["graph_list"])) {
foreach (explode(",",$_REQUEST["graph_list"]) as $item) {
$graph_list[$item] = 1;
}
}else{
$graph_list = array();
}
if (! empty($_REQUEST["graph_add"])) {
foreach (explode(",",$_REQUEST["graph_add"]) as $item) {
$graph_list[$item] = 1;
}
}
/* remove items */
if (! empty($_REQUEST["graph_remove"])) {
foreach (explode(",",$_REQUEST["graph_remove"]) as $item) {
unset($graph_list[$item]);
}
}
/* update the revised graph list session variable */
$_REQUEST["graph_list"] = implode(",", array_keys($graph_list));
load_current_session_value("graph_list", "sess_graph_view_list_graph_list", "");
// debugging
//echo "GraphList:" . (strlen($_REQUEST["graph_list"]) ? $_REQUEST["graph_list"]:"-") . ", GraphRemove:" . (isset($_REQUEST["graph_remove"]) && strlen($_REQUEST["graph_remove"]) ? $_REQUEST["graph_remove"]:"-") . ", GraphAdd:" . (isset($_REQUEST["graph_add"]) && strlen($_REQUEST["graph_add"]) ? $_REQUEST["graph_add"]:"-");
$nav_url = "graph_view.php?action=list&page=";
/* display graph view filter selector */
html_start_box("Graph Filters", "100%", $colors["header"], "3", "center", "");
?>
|
|
0
and graph_templates_graph.local_graph_id=graph_local.id
and graph_templates_graph.title_cache like '%" . $_REQUEST["filter"] . "%'
" . (empty($_REQUEST["host_id"]) ? "" : " and graph_local.host_id=" . $_REQUEST["host_id"]) . "
" . (empty($_REQUEST["graph_template_id"]) ? "" : " and graph_local.graph_template_id=" . $_REQUEST["graph_template_id"]);
$total_rows = count(db_fetch_assoc("select
graph_templates_graph.local_graph_id
$sql_base"));
$graphs = db_fetch_assoc("select
graph_templates_graph.local_graph_id,
graph_templates_graph.title_cache,
graph_templates_graph.height,
graph_templates_graph.width
$sql_base
group by graph_templates_graph.local_graph_id
order by graph_templates_graph.title_cache
limit " . ($_REQUEST["rows"]*($_REQUEST["page"]-1)) . "," . $_REQUEST["rows"]);
?>