mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 16:24:54 +02:00
Changes and improvements on the ACL checks
This commit is contained in:
parent
d28cd4c172
commit
ae8789db9e
@ -19,7 +19,34 @@ global $config;
|
|||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! check_acl ($config['id_user'], $store_group, "AR")) {
|
// Networkmap id required
|
||||||
|
if (!isset($id_networkmap)) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to access node graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the group for ACL
|
||||||
|
if (!isset($store_group)) {
|
||||||
|
$store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap);
|
||||||
|
if ($store_group === false) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ACL for the networkmap permission
|
||||||
|
if (!isset($networkmap_read))
|
||||||
|
$networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
if (!isset($networkmap_write))
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
if (!isset($networkmap_manage))
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to access node graph builder");
|
"Trying to access node graph builder");
|
||||||
include ("general/noaccess.php");
|
include ("general/noaccess.php");
|
||||||
|
@ -19,7 +19,34 @@ global $config;
|
|||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! check_acl ($config['id_user'], $store_group, "AR")) {
|
// Networkmap id required
|
||||||
|
if (!isset($id_networkmap)) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to access node graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the group for ACL
|
||||||
|
if (!isset($store_group)) {
|
||||||
|
$store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap);
|
||||||
|
if ($store_group === false) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ACL for the networkmap permission
|
||||||
|
if (!isset($networkmap_read))
|
||||||
|
$networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
if (!isset($networkmap_write))
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
if (!isset($networkmap_manage))
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to access node graph builder");
|
"Trying to access node graph builder");
|
||||||
include ("general/noaccess.php");
|
include ("general/noaccess.php");
|
||||||
|
@ -19,13 +19,6 @@ global $config;
|
|||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! check_acl ($config['id_user'], 0, "AR")) {
|
|
||||||
db_pandora_audit("ACL Violation",
|
|
||||||
"Trying to access node graph builder");
|
|
||||||
include ("general/noaccess.php");
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once ('include/functions_networkmap.php');
|
require_once ('include/functions_networkmap.php');
|
||||||
require_once ('include/functions_clippy.php');
|
require_once ('include/functions_clippy.php');
|
||||||
|
|
||||||
@ -42,16 +35,54 @@ $update_networkmap = get_parameter ('update_networkmap', 0);
|
|||||||
$recenter_networkmap = get_parameter ('recenter_networkmap', 0);
|
$recenter_networkmap = get_parameter ('recenter_networkmap', 0);
|
||||||
$hidden_options = get_parameter ('hidden_options', 1);
|
$hidden_options = get_parameter ('hidden_options', 1);
|
||||||
|
|
||||||
if ($delete_networkmap) {
|
// ACL checks //
|
||||||
$result = networkmap_delete_networkmap($id_networkmap);
|
// New networkmap.
|
||||||
$message = ui_print_result_message ($result,
|
if ($add_networkmap) {
|
||||||
__('Network map deleted successfully'),
|
// ACL for the new network map
|
||||||
__('Could not delete network map'), '', true);
|
// $networkmap_read = check_acl ($config['id_user'], 0, "MR");
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], 0, "MW");
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], 0, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_write && !$networkmap_manage) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// The networkmap exist. Should have id and store goup.
|
||||||
|
else {
|
||||||
|
// Networkmap id required
|
||||||
|
if (empty($id_networkmap)) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to access node graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$id_networkmap = 0;
|
// Get the group for ACL
|
||||||
|
$store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap);
|
||||||
|
if ($store_group === false) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ACL for the general permission
|
||||||
|
$networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to access node graph builder");
|
||||||
|
include ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create
|
||||||
if ($add_networkmap) {
|
if ($add_networkmap) {
|
||||||
// Load variables
|
// Load variables
|
||||||
$layout = 'radial';
|
$layout = 'radial';
|
||||||
@ -104,9 +135,44 @@ if ($add_networkmap) {
|
|||||||
$message = ui_print_result_message ($id_networkmap,
|
$message = ui_print_result_message ($id_networkmap,
|
||||||
__('Network map created successfully'),
|
__('Network map created successfully'),
|
||||||
__('Could not create network map'), '', true);
|
__('Could not create network map'), '', true);
|
||||||
}
|
|
||||||
|
|
||||||
if ($save_networkmap || $update_networkmap) {
|
// Exit when the networkmap was not created
|
||||||
|
if ($id_networkmap === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Action in existing networkmap
|
||||||
|
else if ($delete_networkmap || $save_networkmap || $update_networkmap) {
|
||||||
|
|
||||||
|
// ACL for the network map
|
||||||
|
// if (!isset($networkmap_read))
|
||||||
|
// $networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
if (!isset($networkmap_write))
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
if (!isset($networkmap_manage))
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_write && !$networkmap_manage) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actions //
|
||||||
|
|
||||||
|
// Not used now. The new behaviour is delete the map posting to the list.
|
||||||
|
if ($delete_networkmap) {
|
||||||
|
$result = networkmap_delete_networkmap($id_networkmap);
|
||||||
|
$message = ui_print_result_message ($result,
|
||||||
|
__('Network map deleted successfully'),
|
||||||
|
__('Could not delete network map'), '', true);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save updates the db data, update only updates the view.
|
||||||
|
if ($save_networkmap || $update_networkmap) {
|
||||||
// Load variables
|
// Load variables
|
||||||
$layout = (string) get_parameter ('layout', 'radial');
|
$layout = (string) get_parameter ('layout', 'radial');
|
||||||
$depth = (string) get_parameter ('depth', 'all');
|
$depth = (string) get_parameter ('depth', 'all');
|
||||||
@ -129,6 +195,18 @@ if ($save_networkmap || $update_networkmap) {
|
|||||||
$l2_network = (int) get_parameter ('l2_network', 0);
|
$l2_network = (int) get_parameter ('l2_network', 0);
|
||||||
|
|
||||||
if ($save_networkmap) {
|
if ($save_networkmap) {
|
||||||
|
// ACL for the new network map
|
||||||
|
$networkmap_read_new = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
$networkmap_write_new = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
$networkmap_manage_new = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_write_new && !$networkmap_manage_new) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$result = networkmap_update_networkmap($id_networkmap,
|
$result = networkmap_update_networkmap($id_networkmap,
|
||||||
array('name' => $name,
|
array('name' => $name,
|
||||||
'type' => $activeTab,
|
'type' => $activeTab,
|
||||||
@ -154,27 +232,25 @@ if ($save_networkmap || $update_networkmap) {
|
|||||||
$message = ui_print_result_message ($result,
|
$message = ui_print_result_message ($result,
|
||||||
__('Network map saved successfully'),
|
__('Network map saved successfully'),
|
||||||
__('Could not save network map'), '', true);
|
__('Could not save network map'), '', true);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
// Save the new ACL permisison
|
||||||
|
$networkmap_read = $networkmap_read_new;
|
||||||
|
$networkmap_write = $networkmap_write_new;
|
||||||
|
$networkmap_manage = $networkmap_manage_new;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$networkmaps = networkmap_get_networkmaps('','', true, $strict_user);
|
if (!$update_networkmap && !$save_networkmap) {
|
||||||
|
|
||||||
$nomaps = false;
|
|
||||||
if ($networkmaps === false) {
|
|
||||||
$nomaps = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the map id is not defined, we set the first id of the active type
|
|
||||||
if (!$nomaps && $id_networkmap == 0) {
|
|
||||||
$networkmaps_of_type = networkmap_get_networkmaps('', $activeTab);
|
|
||||||
if ($networkmaps_of_type !== false) {
|
|
||||||
$id_networkmap = reset(array_keys($networkmaps_of_type));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$update_networkmap && !$save_networkmap && $id_networkmap != 0) {
|
|
||||||
$networkmap_data = networkmap_get_networkmap($id_networkmap);
|
$networkmap_data = networkmap_get_networkmap($id_networkmap);
|
||||||
|
if (empty($networkmap_data)) {
|
||||||
|
ui_print_error_message(__('There was an error loading the network map'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load variables
|
||||||
$layout = $networkmap_data['layout'];
|
$layout = $networkmap_data['layout'];
|
||||||
$depth = $networkmap_data['depth'];
|
$depth = $networkmap_data['depth'];
|
||||||
$nooverlap = (bool)$networkmap_data['nooverlap'];
|
$nooverlap = (bool)$networkmap_data['nooverlap'];
|
||||||
@ -202,107 +278,128 @@ if ($recenter_networkmap) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Main code */
|
/* Main code */
|
||||||
|
|
||||||
|
$qs = http_build_query(array(
|
||||||
|
"sec" => "network",
|
||||||
|
"sec2" => "operation/agentes/networkmap_list"
|
||||||
|
));
|
||||||
|
$href = "index.php?$qs";
|
||||||
|
|
||||||
|
$buttons['list'] = array('active' => false, 'text' => "<a href=\"$href\">" .
|
||||||
|
html_print_image("images/list.png", true, array ("title" => __('List'))) ."</a>");
|
||||||
|
|
||||||
if ($pure == 1) {
|
if ($pure == 1) {
|
||||||
$buttons['screen'] = array('active' => false,
|
$qs = http_build_query(array(
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab='.$activeTab.'">' .
|
"sec" => "network",
|
||||||
html_print_image("images/normal_screen.png", true, array ('title' => __('Normal screen'))) .'</a>');
|
"sec2" => "operation/agentes/networkmap",
|
||||||
|
"id_networkmap" => $id_networkmap,
|
||||||
|
"tab" => $activeTab
|
||||||
|
));
|
||||||
|
$href = "index.php?$qs";
|
||||||
|
|
||||||
|
$buttons['screen'] = array('active' => false, 'text' => "<a href=\"$href\">" .
|
||||||
|
html_print_image("images/normal_screen.png", true, array ('title' => __('Normal screen'))) ."</a>");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$buttons['screen'] = array('active' => false,
|
$qs = http_build_query(array(
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&pure=1&tab='.$activeTab.'">' .
|
"sec" => "network",
|
||||||
html_print_image("images/full_screen.png", true, array ('title' => __('Full screen'))) .'</a>');
|
"sec2" => "operation/agentes/networkmap",
|
||||||
}
|
"id_networkmap" => $id_networkmap,
|
||||||
if (($config['enterprise_installed']) && (!$strict_user)) {
|
"tab" => $activeTab,
|
||||||
$buttons['policies'] = array('active' => $activeTab == 'policies',
|
"pure" => 1
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=policies&pure='.$pure.'">' .
|
));
|
||||||
html_print_image("images/policies_mc.png", true, array ("title" => __('Policies view'))) .'</a>');
|
$href = "index.php?$qs";
|
||||||
|
|
||||||
|
$buttons['screen'] = array('active' => false, 'text' => "<a href=\"$href\">" .
|
||||||
|
html_print_image("images/full_screen.png", true, array ('title' => __('Full screen'))) ."</a>");
|
||||||
}
|
}
|
||||||
|
|
||||||
$buttons['groups'] = array('active' => $activeTab == 'groups',
|
if ($networkmap_write || $networkmap_manage) {
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=groups&pure='.$pure.'">' .
|
|
||||||
html_print_image("images/group.png", true, array ("title" => __('Groups view'))) .'</a>');
|
|
||||||
|
|
||||||
$buttons['topology'] = array('active' => $activeTab == 'topology',
|
$qs = http_build_query(array(
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=topology&pure='.$pure.'">' .
|
"sec" => "network",
|
||||||
html_print_image("images/op_network.png", true, array ("title" => __('Topology view'))) .'</a>');
|
"sec2" => "operation/agentes/networkmap_list",
|
||||||
|
"id_networkmap" => $id_networkmap,
|
||||||
|
"delete_networkmap" => 1
|
||||||
|
));
|
||||||
|
$href = "index.php?$qs";
|
||||||
|
|
||||||
$buttons['dinamic'] = array('active' => $activeTab == 'dinamic',
|
$buttons['deletemap'] = array('active' => false, 'text' => "<a href=\"$href\">" .
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=dinamic&pure='.$pure.'">' .
|
html_print_image("images/delete_mc.png", true, array ("title" => __('Delete map'))) ."</a>");
|
||||||
html_print_image("images/dynamic_network_icon.png", true, array ("title" => __('Dynamic view'))) .'</a>');
|
|
||||||
|
|
||||||
if (!$strict_user) {
|
$qs = http_build_query(array(
|
||||||
$buttons['radial_dinamic'] = array('active' => $activeTab == 'radial_dynamic',
|
"sec" => "network",
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=radial_dynamic&pure='.$pure.'">' .
|
"sec2" => "operation/agentes/networkmap",
|
||||||
html_print_image("images/radial_dynamic_network_icon.png", true, array ("title" => __('Radial dynamic view'))) .'</a>');
|
"id_networkmap" => $id_networkmap,
|
||||||
}
|
"save_networkmap" => 1,
|
||||||
|
"tab" => $activeTab,
|
||||||
|
"name" => $name,
|
||||||
|
"store_group" => $store_group,
|
||||||
|
"group" => $group,
|
||||||
|
"layout" => $layout,
|
||||||
|
"nooverlap" => $nooverlap,
|
||||||
|
"simple" => $simple,
|
||||||
|
"regen" => $regen,
|
||||||
|
"zoom" => $zoom,
|
||||||
|
"ranksep" => $$ranksep,
|
||||||
|
"font_size" => $font_size,
|
||||||
|
"depth" => $depth,
|
||||||
|
"modwithalerts" => $modwithalerts,
|
||||||
|
"text_filter" => $text_filter,
|
||||||
|
"dont_show_subgroups" => $dont_show_subgroups,
|
||||||
|
"hidepolicymodules" => $hidepolicymodules,
|
||||||
|
"module_group" => $module_group,
|
||||||
|
"hidden_options" => (int)$hidden_options,
|
||||||
|
"show_snmp_modules" => (int)$show_snmp_modules,
|
||||||
|
"l2_network" => (int)$l2_network,
|
||||||
|
"pure" => $pure
|
||||||
|
));
|
||||||
|
$href = "index.php?$qs";
|
||||||
|
|
||||||
$combolist = '<form name="query_sel" method="post" action="index.php?sec=network&sec2=operation/agentes/networkmap">';
|
$buttons['savemap'] = array('active' => false, 'text' => "<a href=\"$href\">" .
|
||||||
|
|
||||||
$combolist .= html_print_select($networkmaps, 'id_networkmap', $id_networkmap, 'onchange:this.form.submit()', __('No selected'), 0, true, false, false, '', false, 'margin-top:4px; margin-left:3px; width:150px;');
|
|
||||||
|
|
||||||
$combolist .= html_print_input_hidden('hidden_options',$hidden_options, true);
|
|
||||||
|
|
||||||
$combolist .= '</form>';
|
|
||||||
|
|
||||||
$buttons['combolist'] = $combolist;
|
|
||||||
|
|
||||||
if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) {
|
|
||||||
$buttons['addmap'] = array('active' => $activeTab == false,
|
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&add_networkmap=1&tab='.$activeTab.'&pure='.$pure.'">' .
|
|
||||||
html_print_image("images/add_mc.png", true, array ("title" => __('Add map'))) .'</a>');
|
|
||||||
|
|
||||||
if (!$nomaps && $id_networkmap != 0) {
|
|
||||||
$buttons['deletemap'] = array('active' => $activeTab == false,
|
|
||||||
'text' => '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&id_networkmap='.$id_networkmap.'&delete_networkmap=1&tab='.$activeTab.'&pure='.$pure.'">' .
|
|
||||||
html_print_image("images/delete_mc.png", true, array ("title" => __('Delete map'))) .'</a>');
|
|
||||||
|
|
||||||
$buttons['savemap'] = array('active' => $activeTab == false,
|
|
||||||
'text' => '<a href="index.php?sec=network&' .
|
|
||||||
'sec2=operation/agentes/networkmap&' .
|
|
||||||
'id_networkmap=' . $id_networkmap . '&' .
|
|
||||||
'save_networkmap=1&' .
|
|
||||||
'tab=' . $activeTab . '&' .
|
|
||||||
'save_networkmap=1&' .
|
|
||||||
'name=' . $name . '&' .
|
|
||||||
'store_group=' . $store_group . '&' .
|
|
||||||
'group=' . $group . '&' .
|
|
||||||
'layout=' . $layout . '&' .
|
|
||||||
'nooverlap=' . $nooverlap . '&' .
|
|
||||||
'simple=' . $simple . '&' .
|
|
||||||
'regen=' . $regen . '&' .
|
|
||||||
'zoom=' . $zoom . '&' .
|
|
||||||
'ranksep=' . $ranksep . '&' .
|
|
||||||
'font_size=' . $font_size . '&' .
|
|
||||||
'depth=' . $depth . '&' .
|
|
||||||
'modwithalerts=' . $modwithalerts . '&' .
|
|
||||||
'text_filter=' . $text_filter . '&' .
|
|
||||||
'dont_show_subgroups=' . $dont_show_subgroups . '&' .
|
|
||||||
'hidepolicymodules=' . $hidepolicymodules . '&' .
|
|
||||||
'module_group=' . $module_group . '&' .
|
|
||||||
'pure=' . $pure . '&' .
|
|
||||||
'hidden_options=' . (int)$hidden_options . '&' .
|
|
||||||
'show_snmp_modules=' . (int)$show_snmp_modules . '&' .
|
|
||||||
'l2_network=' . (int)$l2_network . '">' .
|
|
||||||
html_print_image("images/save_mc.png", true, array ("title" => __('Save map'))) .'</a>');
|
html_print_image("images/save_mc.png", true, array ("title" => __('Save map'))) .'</a>');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Disabled. It's a waste of resources to check the ACL of every networkmap
|
||||||
|
// for only provide a shorthand feature.
|
||||||
|
// $combolist = '<form name="query_sel" method="post" action="index.php?sec=network&sec2=operation/agentes/networkmap">';
|
||||||
|
|
||||||
|
// $networkmaps = networkmap_get_networkmaps('','', true, $strict_user);
|
||||||
|
// if (empty($networkmaps))
|
||||||
|
// $networkmaps = array();
|
||||||
|
|
||||||
|
// $combolist .= html_print_select($networkmaps, 'id_networkmap', $id_networkmap,
|
||||||
|
// 'onchange:this.form.submit()', '', 0, true, false, false,
|
||||||
|
// '', false, 'margin-top:4px; margin-left:3px; width:150px;');
|
||||||
|
|
||||||
|
// $combolist .= html_print_input_hidden('hidden_options',$hidden_options, true);
|
||||||
|
|
||||||
|
// $combolist .= '</form>';
|
||||||
|
|
||||||
|
// $buttons['combolist'] = $combolist;
|
||||||
|
|
||||||
$title = '';
|
$title = '';
|
||||||
|
$icon = "images/op_network.png";
|
||||||
switch ($activeTab) {
|
switch ($activeTab) {
|
||||||
case 'topology':
|
case 'topology':
|
||||||
$title = __('Topology view');
|
$title = __('Topology view');
|
||||||
|
$icon = "images/op_network.png";
|
||||||
break;
|
break;
|
||||||
case 'groups':
|
case 'groups':
|
||||||
$title = __('Groups view');
|
$title = __('Groups view');
|
||||||
|
$icon = "images/group.png";
|
||||||
break;
|
break;
|
||||||
case 'policies':
|
case 'policies':
|
||||||
$title = __('Policies view');
|
$title = __('Policies view');
|
||||||
|
$icon = "images/policies_mc.png";
|
||||||
break;
|
break;
|
||||||
case 'dinamic':
|
case 'dinamic':
|
||||||
$title = __('Dynamic view');
|
$title = __('Dynamic view');
|
||||||
|
$icon = "images/dynamic_network_icon.png";
|
||||||
break;
|
break;
|
||||||
case 'radial_dinamic':
|
case 'radial_dynamic':
|
||||||
$title = __('Radial dynamic view');
|
$title = __('Radial dynamic view');
|
||||||
|
$icon = "images/radial_dynamic_network_icon.png";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,7 +408,7 @@ if (!empty($name)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui_print_page_header (__('Network map') . " - " . $title,
|
ui_print_page_header (__('Network map') . " - " . $title,
|
||||||
"images/op_network.png", false, "network_map", false, $buttons);
|
$icon, false, "network_map", false, $buttons);
|
||||||
|
|
||||||
if ((tags_has_user_acl_tags()) && (!$strict_user)) {
|
if ((tags_has_user_acl_tags()) && (!$strict_user)) {
|
||||||
ui_print_tags_warning();
|
ui_print_tags_warning();
|
||||||
@ -321,12 +418,6 @@ if ($delete_networkmap || $add_networkmap || $save_networkmap) {
|
|||||||
echo $message;
|
echo $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($id_networkmap == 0) {
|
|
||||||
echo "<div class='nf'>" .
|
|
||||||
__('There are no defined maps in this view') . "</div>";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// CONFIGURATION FORM
|
// CONFIGURATION FORM
|
||||||
|
|
||||||
echo "<br>";
|
echo "<br>";
|
||||||
@ -498,8 +589,7 @@ $options_form .= '</form>';
|
|||||||
|
|
||||||
ui_toggle($options_form, __('Map options'), '', $hidden_options);
|
ui_toggle($options_form, __('Map options'), '', $hidden_options);
|
||||||
|
|
||||||
if ($id_networkmap != 0) {
|
switch ($activeTab) {
|
||||||
switch ($activeTab) {
|
|
||||||
case 'groups':
|
case 'groups':
|
||||||
require_once('operation/agentes/networkmap.groups.php');
|
require_once('operation/agentes/networkmap.groups.php');
|
||||||
break;
|
break;
|
||||||
@ -516,6 +606,5 @@ if ($id_networkmap != 0) {
|
|||||||
case 'topology':
|
case 'topology':
|
||||||
require_once('operation/agentes/networkmap.topology.php');
|
require_once('operation/agentes/networkmap.topology.php');
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -19,7 +19,34 @@ global $config;
|
|||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! check_acl ($config['id_user'], $store_group, "AR")) {
|
// Networkmap id required
|
||||||
|
if (!isset($id_networkmap)) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to access node graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the group for ACL
|
||||||
|
if (!isset($store_group)) {
|
||||||
|
$store_group = db_get_value("store_group", "tnetwork_map", "id_networkmap", $id_networkmap);
|
||||||
|
if ($store_group === false) {
|
||||||
|
db_pandora_audit("ACL Violation",
|
||||||
|
"Trying to accessnode graph builder");
|
||||||
|
require ("general/noaccess.php");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ACL for the networkmap permission
|
||||||
|
if (!isset($networkmap_read))
|
||||||
|
$networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
if (!isset($networkmap_write))
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
if (!isset($networkmap_manage))
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if (!$networkmap_read && !$networkmap_write && !$networkmap_manage) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to access node graph builder");
|
"Trying to access node graph builder");
|
||||||
include ("general/noaccess.php");
|
include ("general/noaccess.php");
|
||||||
|
@ -19,7 +19,12 @@ global $config;
|
|||||||
|
|
||||||
check_login ();
|
check_login ();
|
||||||
|
|
||||||
if (! check_acl ($config['id_user'], 0, "AR")) {
|
// ACL for the general permission
|
||||||
|
$networkmaps_read = check_acl ($config['id_user'], 0, "MR");
|
||||||
|
$networkmaps_write = check_acl ($config['id_user'], 0, "MW");
|
||||||
|
$networkmaps_manage = check_acl ($config['id_user'], 0, "MM");
|
||||||
|
|
||||||
|
if (!$networkmaps_read && !$networkmaps_write && !$networkmaps_manage) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to access Networkmap builder");
|
"Trying to access Networkmap builder");
|
||||||
if (is_ajax()) {
|
if (is_ajax()) {
|
||||||
@ -45,10 +50,15 @@ if (is_ajax()) {
|
|||||||
foreach ($ids_networkmap as $id) {
|
foreach ($ids_networkmap as $id) {
|
||||||
$store_group = (int) db_get_value('store_group', 'tnetwork_map', 'id_networkmap',$id_networkmap);
|
$store_group = (int) db_get_value('store_group', 'tnetwork_map', 'id_networkmap',$id_networkmap);
|
||||||
|
|
||||||
if (check_acl ($config['id_user'], $store_group, "RM")) {
|
// ACL
|
||||||
|
// $networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if ($networkmap_manage) {
|
||||||
$results[$id] = (bool) networkmap_delete_networkmap($id);
|
$results[$id] = (bool) networkmap_delete_networkmap($id);
|
||||||
}
|
}
|
||||||
else if (check_acl ($config['id_user'], $store_group, "RW")) {
|
else if ($networkmap_write) {
|
||||||
$results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id);
|
$results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,12 +84,16 @@ $id_networkmap = get_parameter ('id_networkmap', 0);
|
|||||||
$delete_networkmap = get_parameter ('delete_networkmap', 0);
|
$delete_networkmap = get_parameter ('delete_networkmap', 0);
|
||||||
|
|
||||||
if ($delete_networkmap) {
|
if ($delete_networkmap) {
|
||||||
if (is_user_admin ($config['id_user'])){
|
|
||||||
|
// ACL
|
||||||
|
// $networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
if ($networkmap_manage || is_user_admin ($config['id_user'])) {
|
||||||
$result = networkmap_delete_networkmap($id_networkmap);
|
$result = networkmap_delete_networkmap($id_networkmap);
|
||||||
}
|
}
|
||||||
elseif (check_acl ($config['id_user'], 0, "RM")) {
|
else if ($networkmap_write) {
|
||||||
$result = networkmap_delete_networkmap($id_networkmap);
|
|
||||||
}elseif (check_acl ($config['id_user'], 0, "RW")) {
|
|
||||||
$result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap);
|
$result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap);
|
||||||
}
|
}
|
||||||
$message = ui_print_result_message ($result,
|
$message = ui_print_result_message ($result,
|
||||||
@ -138,14 +152,13 @@ $table->style[1] = 'text-align: center;';
|
|||||||
$table->style[2] = 'text-align: center;';
|
$table->style[2] = 'text-align: center;';
|
||||||
$table->style[3] = 'text-align: center;';
|
$table->style[3] = 'text-align: center;';
|
||||||
$table->style[4] = 'text-align: center;';
|
$table->style[4] = 'text-align: center;';
|
||||||
$table->style[5] = 'text-align: center;';
|
|
||||||
|
|
||||||
$table->size = array();
|
$table->size = array();
|
||||||
$table->size[0] = '80%';
|
$table->size[0] = '80%';
|
||||||
$table->size[1] = '60px';
|
$table->size[1] = '60px';
|
||||||
$table->size[2] = '30px';
|
$table->size[2] = '30px';
|
||||||
|
|
||||||
if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) {
|
if ($networkmaps_write || $networkmaps_manage) {
|
||||||
$table->size[3] = '30px';
|
$table->size[3] = '30px';
|
||||||
$table->size[4] = '30px';
|
$table->size[4] = '30px';
|
||||||
}
|
}
|
||||||
@ -154,11 +167,10 @@ $table->head = array();
|
|||||||
$table->head[0] = __('Name');
|
$table->head[0] = __('Name');
|
||||||
$table->head[1] = __('Type');
|
$table->head[1] = __('Type');
|
||||||
$table->head[2] = __('Group');
|
$table->head[2] = __('Group');
|
||||||
if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) {
|
if ($networkmaps_write || $networkmaps_manage) {
|
||||||
$table->head[3] = __('Edit');
|
$table->head[3] = __('Delete');
|
||||||
$table->head[4] = __('Delete');
|
|
||||||
// Checkbox to select all the another checkboxes
|
// Checkbox to select all the another checkboxes
|
||||||
$table->head[5] = html_print_checkbox('check_delete_all', 0, false, true);
|
$table->head[4] = html_print_checkbox('check_delete_all', 0, false, true);
|
||||||
}
|
}
|
||||||
$id_groups = array_keys(users_get_groups());
|
$id_groups = array_keys(users_get_groups());
|
||||||
|
|
||||||
@ -187,32 +199,36 @@ else {
|
|||||||
$table->data = array();
|
$table->data = array();
|
||||||
foreach ($network_maps as $network_map) {
|
foreach ($network_maps as $network_map) {
|
||||||
// ACL
|
// ACL
|
||||||
if (!check_acl ($config['id_user'], $network_map['store_group'], "RR"))
|
$networkmap_read = check_acl ($config['id_user'], $store_group, "MR");
|
||||||
|
$networkmap_write = check_acl ($config['id_user'], $store_group, "MW");
|
||||||
|
$networkmap_manage = check_acl ($config['id_user'], $store_group, "MM");
|
||||||
|
|
||||||
|
// ACL
|
||||||
|
if (!$networkmap_read && !$networkmap_write && !$networkmap_manage)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// If enterprise not loaded then skip this code
|
// If enterprise not loaded then skip this code
|
||||||
if ($network_map['type'] == 'policies' and (!defined('PANDORA_ENTERPRISE')))
|
if ($network_map['type'] == 'policies' && !defined('PANDORA_ENTERPRISE'))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (($network_map['type'] == 'radial_dynamic' || $network_map['type'] == 'policies') && ($strict_user)) {
|
if (($network_map['type'] == 'radial_dynamic' || $network_map['type'] == 'policies') && $strict_user) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
$data[0] = '<b><a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=view&id_networkmap=' . $network_map['id_networkmap'] . '">' . $network_map['name'] . '</a></b>';
|
$data[0] = '<b><a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=' . $network_map['type']
|
||||||
|
. '&id_networkmap=' . $network_map['id_networkmap'] . '">' . $network_map['name'] . '</a></b>';
|
||||||
$data[1] = $network_map['type'];
|
$data[1] = $network_map['type'];
|
||||||
$data[2] = ui_print_group_icon ($network_map['store_group'], true);
|
$data[2] = ui_print_group_icon ($network_map['store_group'], true);
|
||||||
|
|
||||||
if (check_acl ($config['id_user'], $network_map['store_group'], "RW") || check_acl ($config['id_user'], $network_map['store_group'], "RM")) {
|
if ($networkmap_write || $networkmap_manage) {
|
||||||
$data[3] = '<a href="index.php?sec=network&sec2=operation/agentes/networkmap&tab=edit&edit_networkmap=1&id_networkmap=' . $network_map['id_networkmap'] . '" alt="' . __('Config') . '">' . html_print_image("images/config.png", true) . '</a>';
|
$data[3] = '<a href="index.php?sec=network&sec2=operation/agentes/networkmap_list&delete_networkmap=1&id_networkmap=' . $network_map['id_networkmap'] . '" alt="' . __('Delete') . '" onclick="javascript: if (!confirm(\'' . __('Are you sure?') . '\')) return false;">' . html_print_image('images/cross.png', true) . '</a>';
|
||||||
$data[4] = '<a href="index.php?sec=network&sec2=operation/agentes/networkmap_list&delete_networkmap=1&id_networkmap=' . $network_map['id_networkmap'] . '" alt="' . __('Delete') . '" onclick="javascript: if (!confirm(\'' . __('Are you sure?') . '\')) return false;">' . html_print_image('images/cross.png', true) . '</a>';
|
|
||||||
// The value of the checkbox will be the networkmap id to recover it in js to perform the massive deletion
|
// The value of the checkbox will be the networkmap id to recover it in js to perform the massive deletion
|
||||||
$data[5] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true);
|
$data[4] = html_print_checkbox('check_delete', $network_map['id_networkmap'], false, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$data[3] = '';
|
$data[3] = '';
|
||||||
$data[4] = '';
|
$data[4] = '';
|
||||||
$data[5] = '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data[] = $data;
|
$table->data[] = $data;
|
||||||
@ -222,7 +238,7 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create networkmap form
|
// Create networkmap form
|
||||||
if (check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM")) {
|
if ($networkmaps_write || $networkmaps_manage) {
|
||||||
$table_manage = new StdClass();
|
$table_manage = new StdClass();
|
||||||
$table_manage->width = "100%";
|
$table_manage->width = "100%";
|
||||||
$table_manage->style = array();
|
$table_manage->style = array();
|
||||||
|
@ -74,7 +74,12 @@ $bheight = $layout["height"];
|
|||||||
|
|
||||||
$pure_url = "&pure=" . $config["pure"];
|
$pure_url = "&pure=" . $config["pure"];
|
||||||
|
|
||||||
if (! check_acl ($config["id_user"], $id_group, "RR")) {
|
// ACL
|
||||||
|
$vconsole_read = check_acl ($config["id_user"], $id_group, "VR");
|
||||||
|
$vconsole_write = check_acl ($config["id_user"], $id_group, "VW");
|
||||||
|
$vconsole_manage = check_acl ($config["id_user"], $id_group, "VM");
|
||||||
|
|
||||||
|
if (! $vconsole_read) {
|
||||||
db_pandora_audit("ACL Violation",
|
db_pandora_audit("ACL Violation",
|
||||||
"Trying to access visual console without group access");
|
"Trying to access visual console without group access");
|
||||||
require ("general/noaccess.php");
|
require ("general/noaccess.php");
|
||||||
@ -89,7 +94,7 @@ $options['consoles_list']['text'] =
|
|||||||
html_print_image ("images/visual_console.png", true,
|
html_print_image ("images/visual_console.png", true,
|
||||||
array ("title" => __('Visual consoles list'))) . '</a>';
|
array ("title" => __('Visual consoles list'))) . '</a>';
|
||||||
|
|
||||||
if (check_acl ($config["id_user"], $id_group, "RW")) {
|
if ($vconsole_write || $vconsole_manage) {
|
||||||
$url_base = 'index.php?sec=reporting&sec2=godmode/reporting/visual_console_builder&action=';
|
$url_base = 'index.php?sec=reporting&sec2=godmode/reporting/visual_console_builder&action=';
|
||||||
|
|
||||||
$hash = md5($config["dbpass"] . $id_layout . $config["id_user"]);
|
$hash = md5($config["dbpass"] . $id_layout . $config["id_user"]);
|
||||||
@ -123,7 +128,7 @@ if (check_acl ($config["id_user"], $id_group, "RW")) {
|
|||||||
$options['view']['text'] = '<a href="index.php?sec=reporting&sec2=operation/visual_console/render_view&id=' . $id_layout . '&refr=' . $view_refresh . '">' . html_print_image ("images/operation.png", true, array ("title" => __('View'))) .'</a>';
|
$options['view']['text'] = '<a href="index.php?sec=reporting&sec2=operation/visual_console/render_view&id=' . $id_layout . '&refr=' . $view_refresh . '">' . html_print_image ("images/operation.png", true, array ("title" => __('View'))) .'</a>';
|
||||||
$options['view']['active'] = true;
|
$options['view']['active'] = true;
|
||||||
|
|
||||||
if (!defined('METACONSOLE')) {
|
if (! defined('METACONSOLE')) {
|
||||||
if ($config["pure"] == 0) {
|
if ($config["pure"] == 0) {
|
||||||
$options['pure']['text'] = '<a href="index.php?sec=reporting&sec2=operation/visual_console/render_view&id='.$id_layout.'&refr='.((int)get_parameter('refr', 0)).'&pure=1">' . html_print_image ("images/full_screen.png", true, array ("title" => __('Full screen mode')))
|
$options['pure']['text'] = '<a href="index.php?sec=reporting&sec2=operation/visual_console/render_view&id='.$id_layout.'&refr='.((int)get_parameter('refr', 0)).'&pure=1">' . html_print_image ("images/full_screen.png", true, array ("title" => __('Full screen mode')))
|
||||||
. "</a>";
|
. "</a>";
|
||||||
@ -138,18 +143,15 @@ if (!defined('METACONSOLE')) {
|
|||||||
$options = array('view' => $options['view'], 'pure' => $options['pure']);
|
$options = array('view' => $options['view'], 'pure' => $options['pure']);
|
||||||
}
|
}
|
||||||
$options['pure']['active'] = false;
|
$options['pure']['active'] = false;
|
||||||
}
|
|
||||||
|
|
||||||
//Set the hidden value for the javascript
|
//Set the hidden value for the javascript
|
||||||
if (defined('METACONSOLE')) {
|
|
||||||
html_print_input_hidden('metaconsole', 1);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html_print_input_hidden('metaconsole', 0);
|
html_print_input_hidden('metaconsole', 0);
|
||||||
ui_print_page_header ($layout_name, "images/visual_console.png", false, '', false, $options);
|
ui_print_page_header ($layout_name, "images/visual_console.png", false, '', false, $options);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
//Set the hidden value for the javascript
|
||||||
|
html_print_input_hidden('metaconsole', 1);
|
||||||
|
}
|
||||||
|
|
||||||
visual_map_print_visual_map ($id_layout);
|
visual_map_print_visual_map ($id_layout);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user