0) { if ($gs == "on") { db_execute("delete from settings_tree where treeitemid=$branch_id and userid=$user_id"); db_execute("insert into settings_tree (treeitemid,userid,status) values ($branch_id,$user_id,$hide)"); } } } /* if auth is enabled, get some basic info about this user so we know what they have rights to */ if ($config["global_auth"]["value"] == "on") { $user = db_fetch_row("select GraphPolicy,ShowTree,ShowList,ShowPreview from auth_users where id=$user_id"); if (sizeof($user) <= 0) { print "CANNOT FIND USER!"; exit; } else { $show_tree_view = $user[ShowTree]; $show_list_view = $user[ShowList]; $show_preview_view = $user[ShowPreview]; } }else{ /* if auth is turned off; obviously they have rights */ $show_tree_view = "on"; $show_list_view = "on"; $show_preview_view = "on"; } switch ($action) { case 'tree': if ($show_tree_view != "on") { print "YOU DO NOT HAVE RIGHTS FOR TREE VIEW"; exit; } include_once ('include/form.php'); include_once ('include/tree_functions.php'); DrawMatrixTableBegin("97%"); $array_tree["options"]["sql_type_column"] = "type"; if (!(isset($tree_id))) { $tree_id = 0; } /* 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. */ if ($config["global_auth"]["value"] == "on") { /* take tree permissions into account here, if the user does not have permission give an "access denied" message */ $id = db_fetch_cell("select UserID from auth_graph_hierarchy where hierarchyid=$tree_id and userid=" . GetCurrentUserID($HTTP_COOKIE_VARS["cactilogin"],$config["guest_user"]["value"])); if ($config["graph_policy"]["auth"] == "1") { if ($id > 0) { $access_denied = true; } } elseif ($config["graph_policy"]["auth"] == "2") { if ($id == 0) { $access_denied = true; } } if ($access_denied == true) { print "ACCESS DENIED"; exit; } /* user is allowed to view this graph hierarchy; so lets move and create the SQL string that will show only the graphs that the user has rights to view in this tree */ if ($config["graph_policy"]["auth"] == "1") { $sql_where = "where ag.userid is null"; }elseif ($config["graph_policy"]["auth"] == "2") { $sql_where = "where (ag.userid is not null or h.type=\\\"Heading\\\")"; } $array_tree["options"]["sql_string"] = "select h.ID,h.GraphID,h.RRAID,h.Type,h.Title,h.Parent, g.title as GTitle, st.Status, ag.GraphID as AGGraphID, ag.userid as AGUserID from graph_hierarchy_items h left join rrd_graph g on h.graphid=g.id left join settings_tree st on (h.id=st.treeitemid and st.userid=$user_id) left join auth_graph ag on (g.id=ag.graphid and ag.userid=$user_id) $sql_where and h.parent=$branch and h.treeid=$tree_id order by h.sequence"; } else { $array_tree["options"]["sql_string"] = "select h.ID,h.GraphID,h.RRAID,h.Type,h.Title,h.Parent, g.title as GTitle, r.name as RName, st.Status from graph_hierarchy_items h left join rrd_graph g on h.graphid=g.id left join rrd_rra r on h.rraid=r.id left join settings_tree st on (h.id=st.treeitemid and st.userid=$user_id) where h.parent=$branch and h.treeid=$tree_id order by h.sequence"; } /* this SQL string is used in case a user clicks on a branch in the tree; this way cacti will show the actual branch they clicked on in addition to its children */ if ($start_branch != "") { $array_tree["options"]["sql_header_string"] = "select h.ID,h.GraphID,h.RRAID,h.Type,h.Title,h.Parent, g.title as GTitle, r.name as RName, st.Status from graph_hierarchy_items h left join rrd_graph g on h.graphid=g.id left join rrd_rra r on h.rraid=r.id left join settings_tree st on (h.id=st.treeitemid and st.userid=$user_id) where h.id=$branch and h.treeid=$tree_id order by h.sequence"; } $array_tree["options"]["indent"] = "- "; $array_tree["options"]["start_branch"] = $start_branch; $array_tree["options"]["alternating_row_colors"] = false; $array_tree["options"]["tree_id"] = $tree_id; $array_tree["options"]["remove_action"] = ''; $array_tree["options"]["create_margin"] = true; $array_tree["options"]["use_expand_contract"] = true; $array_tree["options"]["show_item"] = ""; $array_tree["options"]["hide_item"] = ""; $array_tree["item_can_have_children"]["Heading"] = true; $array_tree["item_td_code"]["Heading"] = "bgcolor='#$colors[panel]' colspan='" . $array_settings["preview"]["columnnumber"] . "'"; # $array_tree["item_action"]["Heading"] = "" . mysql_result($sql_id, $i, "title") . ""; $array_tree["item_can_have_children"]["Graph"] = false; switch ($array_settings["hierarchical"]["viewtype"]) { case "1": # $array_tree["item_action"]["Graph"] = "" . mysql_result($sql_id, $i, "gtitle") . ""; $array_tree["item_columns"]["Graph"] = $array_settings["preview"]["columnnumber"]; break; case "2": $array_tree["item_action"]["Graph"] = "" . mysql_result($sql_id, $i, "gtitle") . ""; break; } DrawMatrixRowBegin(); DrawMatrixCustom(""); DrawMatrixCustom("[root] - $tree_name

"); DrawMatrixCustom(""); DrawMatrixRowEnd(); print "\n"; GrowTree($array_tree); print ''; DrawMatrixTableEnd(); break; case 'preview': if ($show_preview_view != "on") { print "YOU DO NOT HAVE RIGHTS FOR PREVIEW VIEW"; exit; } /* graph permissions */ if ($config["global_auth"]["value"] == "on") { if ($config["graph_policy"]["auth"] == "1") { $sql_where = "where ag.userid is null"; }elseif ($config["graph_policy"]["auth"] == "2") { $sql_where = "where ag.userid is not null"; } $graphs = db_fetch_assoc("select g.ID,g.Title from rrd_graph g left join auth_graph ag on (g.id=ag.graphid and ag.userid=$user_id) $sql_where order by g.title"); }else{ $graphs = db_fetch_assoc("select ID,Title from rrd_graph order by title"); } print "\n"; if (sizeof($graphs) > 0) { foreach ($graphs as $graph) { print "$graph[Title]"; $k++; if ($k == $array_settings["preview"]["columnnumber"]) { $k = 0; print " \n"; } } } print "\n"; break; case 'list': if ($show_list_view != "on") { print "YOU DO NOT HAVE RIGHTS FOR LIST VIEW"; exit; } include_once ("include/form.php"); /* graph permissions */ if ($config["global_auth"]["value"] == "on") { if ($config["graph_policy"]["auth"] == "1") { $sql_where = "where ag.userid is null"; } elseif ($config["graph_policy"]["auth"] == "2") { $sql_where = "where ag.userid is not null"; } $graphs = db_fetch_assoc("select g.ID,g.Title from rrd_graph g left join auth_graph ag on (g.id=ag.graphid and ag.userid=$user_id) $sql_where order by g.title"); } else { $graphs = db_fetch_assoc("select ID,Title from rrd_graph order by title"); } $rra_list = db_fetch_assoc("select id,name from rrd_rra order by id"); print ""; print ""; if (sizeof($graphs) > 0) { foreach ($graphs as $graph) { switch ($array_settings["list"]["listviewtype"]) { case "1": print "\n"; $k++; if ($k==4) { $k = 0; print "\n"; } break; case "2" : print "\n"; break; } } print "
$graph[Title] [all]
\n"; if (sizeof($rra_list) > 0) { foreach ($rra_list as $rra) { print "
\n"; } } print "
 
$graph[Title]
\n"; break; } } include_once ("include/bottom_footer.php");