Fixed the networkmaps new for the policies.
This commit is contained in:
parent
db8bff681b
commit
b4b3cc720d
|
@ -115,6 +115,12 @@ class Networkmap extends Map {
|
|||
}
|
||||
}
|
||||
|
||||
$is_node_policy = false;
|
||||
if ($this->subtype == MAP_SUBTYPE_POLICIES) {
|
||||
if (strstr($chunks[1], "&id_policy=") !== false) {
|
||||
$is_node_policy = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$id_agent = null;
|
||||
|
@ -126,7 +132,17 @@ class Networkmap extends Map {
|
|||
$color = DEFAULT_NODE_COLOR;
|
||||
$image = DEFAULT_NODE_IMAGE;
|
||||
|
||||
if ($is_node_group) {
|
||||
if ($is_node_policy) {
|
||||
preg_match("/<TR><TD>(.*)<\/TD><\/TR><\/TABLE>>/", $chunks[0], $matches);
|
||||
$title = io_safe_output($matches[1]);
|
||||
preg_match("/id_policy=([0-9]*)/", $chunks[1], $matches);
|
||||
$id = $matches[1];
|
||||
$type = ITEM_TYPE_POLICY_NETWORKMAP;
|
||||
preg_match("/data-status=\"([0-9]*)\"/", $chunks[1], $matches);
|
||||
$status = $matches[1];
|
||||
$shape = "rhombus";
|
||||
}
|
||||
elseif ($is_node_group) {
|
||||
preg_match("/<TR><TD>(.*)<\/TD><\/TR><\/TABLE>>/", $chunks[0], $matches);
|
||||
$title = $matches[1];
|
||||
preg_match("/id_group=([0-9]*)/", $chunks[1], $matches);
|
||||
|
@ -302,10 +318,17 @@ class Networkmap extends Map {
|
|||
|
||||
switch ($this->subtype) {
|
||||
case MAP_SUBTYPE_GROUPS:
|
||||
$return['show_policies'] = false;
|
||||
$return['show_groups'] = true;
|
||||
$return['show_agents'] = $this->filter['show_agents'];
|
||||
break;
|
||||
case MAP_SUBTYPE_POLICIES:
|
||||
$return['show_policies'] = true;
|
||||
$return['show_groups'] = false;
|
||||
$return['show_agents'] = $this->filter['show_agents'];
|
||||
break;
|
||||
default:
|
||||
$return['show_policies'] = false;
|
||||
$return['show_groups'] = false;
|
||||
$return['show_agents'] = true;
|
||||
break;
|
||||
|
@ -353,7 +376,8 @@ class Networkmap extends Map {
|
|||
$parameters['module_group'],
|
||||
$parameters['show_modulegroup'],
|
||||
$parameters['show_groups'],
|
||||
$parameters['show_agents']);
|
||||
$parameters['show_agents'],
|
||||
$parameters['show_policies']);
|
||||
|
||||
|
||||
$filename_dot = sys_get_temp_dir() . "/networkmap" . uniqid() . ".dot";
|
||||
|
|
|
@ -506,7 +506,8 @@ define("ITEM_TYPE_MODULE_NETWORKMAP", 1);
|
|||
define("ITEM_TYPE_EDGE_NETWORKMAP", 2);
|
||||
define("ITEM_TYPE_FICTIONAL_NODE", 3);
|
||||
define("ITEM_TYPE_MODULEGROUP_NETWORKMAP", 4);
|
||||
define("ITEM_TYPE_GROUP_NETWORKMAP", 5);
|
||||
define("ITEM_TYPE_GROUP_NETWORKMAP", 5);
|
||||
define("ITEM_TYPE_POLICY_NETWORKMAP", 6);
|
||||
|
||||
/* Another constants new networkmap */
|
||||
define("DEFAULT_NODE_WIDTH", 30);
|
||||
|
|
|
@ -234,7 +234,7 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
|||
$size_canvas = null, $old_mode = false, $id_tag = 0,
|
||||
$show_all_modules = false, $only_modules_alerts = false,
|
||||
$filter_module_group = 0, $show_modulegroup = false,
|
||||
$show_groups = false, $show_agents = true) {
|
||||
$show_groups = false, $show_agents = true, $show_policies = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
|
@ -371,6 +371,18 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
|||
}
|
||||
}
|
||||
|
||||
// Get policy data
|
||||
if ($show_policies) {
|
||||
|
||||
$policies =
|
||||
enterprise_hook("networkmap_enterprise_get_policies",
|
||||
array($group));
|
||||
|
||||
$agents = enterprise_hook(
|
||||
"networkmap_enterprise_filter_agents_policies",
|
||||
array($policies, $agents));
|
||||
}
|
||||
|
||||
|
||||
// Get groups data
|
||||
if ($show_groups) {
|
||||
|
@ -412,8 +424,25 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
|||
$nodes = array ();
|
||||
$node_count = 0;
|
||||
|
||||
// Parse policies
|
||||
if ($show_policies) {
|
||||
$nodes_policies = array();
|
||||
foreach ($policies as $policy) {
|
||||
$node_count ++;
|
||||
$policy['type'] = 'policy';
|
||||
$policy['id_node'] = $node_count;
|
||||
|
||||
$orphans[$node_count] = 1;
|
||||
|
||||
$nodes[$node_count] = $policy;
|
||||
|
||||
// Add node
|
||||
$nodes_policies[$policy['id']] = $policy;
|
||||
}
|
||||
}
|
||||
|
||||
// Parse groups
|
||||
if ($show_groups) {
|
||||
// Parse groups
|
||||
$nodes_groups = array();
|
||||
foreach ($groups as $group2) {
|
||||
$node_count ++;
|
||||
|
@ -470,6 +499,13 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
|||
$parents[$node_count] = $agent['parent'] = $nodes_groups[$agent['id_grupo']]['id_node'];
|
||||
}
|
||||
|
||||
if ($show_policies) {
|
||||
$id_policy = db_get_value(
|
||||
'id_policy',
|
||||
'tpolicy_agents', 'id_agent', $agent['id_agent']);
|
||||
$parents[$node_count] = $agent['parent'] = $nodes_policies[$id_policy]['id_node'];
|
||||
}
|
||||
|
||||
$node_ref[$agent['id_agente']] = $node_count;
|
||||
|
||||
$agent['id_node'] = $node_count;
|
||||
|
@ -749,6 +785,12 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
|||
}
|
||||
|
||||
switch ($node['type']) {
|
||||
case 'policy':
|
||||
if (enterprise_installed()) {
|
||||
enterprise_include_once("include/functions_policies.php");
|
||||
$graph .= policies_create_node($node, $simple, $font_size)."\n\t\t";
|
||||
}
|
||||
break;
|
||||
case 'group':
|
||||
$graph .= networkmap_create_group_node ($node , $simple, $font_size, $metaconsole = false, null, $strict_user) .
|
||||
"\n\t\t";
|
||||
|
|
Loading…
Reference in New Issue