Merge branch 'cherry-pick-0933ccd5' into 'pandora_6.0'

Merge branch '8-tree-view-metaconsola-con-usuario-ad-no-muestra-hiperlink-nodo' into 'develop'

Fixed problems with access a node with user in metaconsole.
#8
See merge request !17

See merge request !18
This commit is contained in:
vgilc 2017-01-16 15:22:05 +01:00
commit b21e2ed875
2 changed files with 70 additions and 48 deletions

View File

@ -73,9 +73,6 @@ if (is_ajax ()) {
if (is_metaconsole()) { if (is_metaconsole()) {
$server_id = (int) get_parameter('serverID'); $server_id = (int) get_parameter('serverID');
$server = metaconsole_get_servers($server_id); $server = metaconsole_get_servers($server_id);
if (metaconsole_connect($server) != NOERR)
return;
} }
ob_clean(); ob_clean();
@ -98,11 +95,7 @@ if (is_ajax ()) {
} }
} }
echo '<br></div>'; echo '<br></div>';
if (!empty($server) && is_metaconsole()) {
metaconsole_restore_db();
}
return; return;
} }

View File

@ -38,7 +38,14 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
enterprise_include_once ('meta/include/functions_modules_meta.php'); enterprise_include_once ('meta/include/functions_modules_meta.php');
enterprise_include_once ('meta/include/functions_ui_meta.php'); enterprise_include_once ('meta/include/functions_ui_meta.php');
enterprise_include_once ('meta/include/functions_metaconsole.php'); enterprise_include_once ('meta/include/functions_metaconsole.php');
$user_access_node = can_user_access_node ();
if (is_metaconsole()) {
if (metaconsole_connect($server_data) != NOERR)
return;
}
$filter["id_agente_modulo"] = $id_module; $filter["id_agente_modulo"] = $id_module;
$module = db_get_row_filter ("tagente_modulo", $filter); $module = db_get_row_filter ("tagente_modulo", $filter);
@ -47,14 +54,7 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
ui_print_error_message(__('There was a problem loading module')); ui_print_error_message(__('There was a problem loading module'));
return; return;
} }
/*if (! check_acl ($config["id_user"], $module["id_grupo"], "AR")) {
db_pandora_audit("ACL Violation",
"Trying to access Module Information");
require_once ("general/noaccess.php");
return;
}*/
$table = new StdClass(); $table = new StdClass();
$table->width = "100%"; $table->width = "100%";
$table->class = "databox data"; $table->class = "databox data";
@ -68,24 +68,24 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
$table->head_colspan[] = 2; $table->head_colspan[] = 2;
$table->data = array(); $table->data = array();
//Module name //Module name
if ($module["disabled"]) if ($module["disabled"])
$cellName = "<em>" . ui_print_truncate_text ($module["nombre"], GENERIC_SIZE_TEXT, true, true, true, '[&hellip;]',"text-transform: uppercase;") . ui_print_help_tip(__('Disabled'), true) . "<em>"; $cellName = "<em>" . ui_print_truncate_text ($module["nombre"], GENERIC_SIZE_TEXT, true, true, true, '[&hellip;]',"text-transform: uppercase;") . ui_print_help_tip(__('Disabled'), true) . "<em>";
else else
$cellName = ui_print_truncate_text ($module["nombre"], GENERIC_SIZE_TEXT, true, true, true, '[&hellip;]',"text-transform: uppercase;"); $cellName = ui_print_truncate_text ($module["nombre"], GENERIC_SIZE_TEXT, true, true, true, '[&hellip;]',"text-transform: uppercase;");
$row = array(); $row = array();
$row['title'] = __('Name'); $row['title'] = __('Name');
$row['data'] = "<b>".$cellName."</b>"; $row['data'] = "<b>".$cellName."</b>";
$table->data['name'] = $row; $table->data['name'] = $row;
// Interval // Interval
$row = array(); $row = array();
$row['title'] = __('Interval'); $row['title'] = __('Interval');
$row['data'] = human_time_description_raw (modules_get_interval($module['id_agente_modulo']), true); $row['data'] = human_time_description_raw (modules_get_interval($module['id_agente_modulo']), true);
$table->data['interval'] = $row; $table->data['interval'] = $row;
// Warning Min/Max // Warning Min/Max
if (modules_is_string_type($module['id_tipo_modulo'])) { if (modules_is_string_type($module['id_tipo_modulo'])) {
$warning_status_str = __('Str.') . ': ' . $module['str_warning']; $warning_status_str = __('Str.') . ': ' . $module['str_warning'];
@ -93,12 +93,12 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
else { else {
$warning_status_str = __('Min.') . ': ' . (float)$module['min_warning'] . '<br>' . __('Max.') . ': ' . (float)$module['max_warning']; $warning_status_str = __('Min.') . ': ' . (float)$module['min_warning'] . '<br>' . __('Max.') . ': ' . (float)$module['max_warning'];
} }
$row = array(); $row = array();
$row['title'] = __('Warning status'); $row['title'] = __('Warning status');
$row['data'] = $warning_status_str; $row['data'] = $warning_status_str;
$table->data['watning_status'] = $row; $table->data['watning_status'] = $row;
// Critical Min/Max // Critical Min/Max
if (modules_is_string_type($module['id_tipo_modulo'])) { if (modules_is_string_type($module['id_tipo_modulo'])) {
$critical_status_str = __('Str.') . ': ' . $module['str_warning']; $critical_status_str = __('Str.') . ': ' . $module['str_warning'];
@ -110,7 +110,7 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
$row['title'] = __('Critical status'); $row['title'] = __('Critical status');
$row['data'] = $critical_status_str; $row['data'] = $critical_status_str;
$table->data['critical_status'] = $row; $table->data['critical_status'] = $row;
// Module group // Module group
$module_group = modules_get_modulegroup_name($module['id_module_group']); $module_group = modules_get_modulegroup_name($module['id_module_group']);
@ -118,31 +118,32 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
$module_group = __('Not assigned'); $module_group = __('Not assigned');
else else
$module_group = __("$module_group"); $module_group = __("$module_group");
$row = array(); $row = array();
$row['title'] = __('Module group'); $row['title'] = __('Module group');
$row['data'] = $module_group; $row['data'] = $module_group;
$table->data['module_group'] = $row; $table->data['module_group'] = $row;
// Description // Description
$row = array(); $row = array();
$row['title'] = __('Description'); $row['title'] = __('Description');
$row['data'] = ui_print_truncate_text ($module['descripcion'], 'description', true, true, true, '[&hellip;]'); $row['data'] = ui_print_truncate_text ($module['descripcion'], 'description', true, true, true, '[&hellip;]');
$table->data['description'] = $row; $table->data['description'] = $row;
// Tags // Tags
$tags = tags_get_module_tags($module['id_agente_modulo']); $tags = tags_get_module_tags($module['id_agente_modulo']);
if (empty($tags)) { if (empty($tags)) {
$tags = array(); $tags = array();
} }
$user_tags = tags_get_user_tags($config["id_user"]); $user_tags = tags_get_user_tags($config["id_user"]);
foreach ($tags as $k => $v) { foreach ($tags as $k => $v) {
if (!array_key_exists($v, $user_tags)) { //only show user's tags. if (!array_key_exists($v, $user_tags)) { //only show user's tags.
unset($tags[$k]); unset($tags[$k]);
} else { }
else {
$tag_name = tags_get_name($v); $tag_name = tags_get_name($v);
if (empty($tag_name)) { if (empty($tag_name)) {
unset($tags[$k]); unset($tags[$k]);
@ -152,19 +153,19 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
} }
} }
} }
if (empty($tags)) { if (empty($tags)) {
$tags = '<i>' . __('N/A') . '</i>'; $tags = '<i>' . __('N/A') . '</i>';
} }
else { else {
$tags = implode(', ' , $tags); $tags = implode(', ' , $tags);
} }
$row = array(); $row = array();
$row['title'] = __('Tags'); $row['title'] = __('Tags');
$row['data'] = $tags; $row['data'] = $tags;
$table->data['tags'] = $row; $table->data['tags'] = $row;
// Data // Data
$last_data = db_get_row_filter ('tagente_estado', array('id_agente_modulo' => $module['id_agente_modulo'], 'order' => array('field' => 'id_agente_estado', 'order' => 'DESC'))); $last_data = db_get_row_filter ('tagente_estado', array('id_agente_modulo' => $module['id_agente_modulo'], 'order' => array('field' => 'id_agente_estado', 'order' => 'DESC')));
if ($config["render_proc"]) { if ($config["render_proc"]) {
@ -288,20 +289,20 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
else { else {
$last_data_str = '<i>' . __('No data') . '</i>'; $last_data_str = '<i>' . __('No data') . '</i>';
} }
$row = array(); $row = array();
$row['title'] = __('Last data'); $row['title'] = __('Last data');
$row['data'] = $last_data_str; $row['data'] = $last_data_str;
$table->data['last_data'] = $row; $table->data['last_data'] = $row;
//End of table //End of table
html_print_table($table); html_print_table($table);
$id_group = agents_get_agent_group($module['id_agente']); $id_group = agents_get_agent_group($module['id_agente']);
$group_name = db_get_value('nombre', 'tgrupo', 'id_grupo', $id_group); $group_name = db_get_value('nombre', 'tgrupo', 'id_grupo', $id_group);
$agent_name = db_get_value('nombre', 'tagente', 'id_agente', $module['id_agente']); $agent_name = db_get_value('nombre', 'tagente', 'id_agente', $module['id_agente']);
if (can_user_access_node () && check_acl ($config["id_user"], $id_group, 'AW')) { if ($user_access_node && check_acl ($config["id_user"], $id_group, 'AW')) {
// Actions table // Actions table
echo '<div style="width:100%; text-align: right; min-width: 300px;">'; echo '<div style="width:100%; text-align: right; min-width: 300px;">';
echo '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=' . $module['id_agente'] . '&tab=module&edit_module=1&id_agent_module=' . $module['id_agente_modulo'] . $url_hash . '">'; echo '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=' . $module['id_agente'] . '&tab=module&edit_module=1&id_agent_module=' . $module['id_agente_modulo'] . $url_hash . '">';
@ -310,14 +311,18 @@ function treeview_printModuleTable($id_module, $server_data = false, $no_head =
echo '</div>'; echo '</div>';
} }
//id_module and id_agent hidden //id_module and id_agent hidden
echo '<div id="ids" style="display:none;">'; echo '<div id="ids" style="display:none;">';
html_print_input_text('id_module', $id_module); html_print_input_text('id_module', $id_module);
html_print_input_text('id_agent', $module['id_agente']); html_print_input_text('id_agent', $module['id_agente']);
html_print_input_text('server_name', $server_name); html_print_input_text('server_name', $server_name);
echo '</div>'; echo '</div>';
if (!empty($server_data) && is_metaconsole()) {
metaconsole_restore_db();
}
return; return;
} }
@ -336,7 +341,14 @@ function treeview_printAlertsTable($id_module, $server_data = array(), $no_head
$console_url = $server_data['server_url'] . '/'; $console_url = $server_data['server_url'] . '/';
$url_hash = metaconsole_get_servers_url_hash($server_data); $url_hash = metaconsole_get_servers_url_hash($server_data);
} }
$user_access_node = can_user_access_node ();
if (is_metaconsole()) {
if (metaconsole_connect($server_data) != NOERR)
return;
}
$module_alerts = alerts_get_alerts_agent_module($id_module); $module_alerts = alerts_get_alerts_agent_module($id_module);
$module_name = db_get_value('nombre', 'tagente_modulo', 'id_agente_modulo', $id_module); $module_name = db_get_value('nombre', 'tagente_modulo', 'id_agente_modulo', $id_module);
$agent_id = db_get_value('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_module); $agent_id = db_get_value('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_module);
@ -423,7 +435,7 @@ function treeview_printAlertsTable($id_module, $server_data = array(), $no_head
} }
html_print_table($table2); html_print_table($table2);
if (can_user_access_node () && check_acl ($config["id_user"], $id_group, 'LW')) { if ($user_access_node && check_acl ($config["id_user"], $id_group, 'LW')) {
// Actions table // Actions table
echo '<div style="width:100%; text-align: right; min-width: 300px;">'; echo '<div style="width:100%; text-align: right; min-width: 300px;">';
echo '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&search=1&module_name=' . $module_name . '&id_agente=' . $agent_id . $url_hash . '" target="_blank">'; echo '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&search=1&module_name=' . $module_name . '&id_agente=' . $agent_id . $url_hash . '" target="_blank">';
@ -431,6 +443,12 @@ function treeview_printAlertsTable($id_module, $server_data = array(), $no_head
echo '</a>'; echo '</a>';
echo '</div>'; echo '</div>';
} }
if (!empty($server_data) && is_metaconsole()) {
metaconsole_restore_db();
}
return;
} }
function treeview_printTable($id_agente, $server_data = array(), $no_head = false) { function treeview_printTable($id_agente, $server_data = array(), $no_head = false) {
@ -463,16 +481,23 @@ function treeview_printTable($id_agente, $server_data = array(), $no_head = fals
if ($is_extra === ENTERPRISE_NOT_HOOK) { if ($is_extra === ENTERPRISE_NOT_HOOK) {
$is_extra = false; $is_extra = false;
} }
$user_access_node = can_user_access_node ();
if (is_metaconsole()) {
if (metaconsole_connect($server_data) != NOERR)
return;
}
$agent = db_get_row ("tagente", "id_agente", $id_agente);
if (! check_acl ($config["id_user"], $agent["id_grupo"], "AR") && ! check_acl ($config["id_user"], $agent["id_grupo"], "AW") && !$is_extra) { if (! check_acl ($config["id_user"], $agent["id_grupo"], "AR") && ! check_acl ($config["id_user"], $agent["id_grupo"], "AW") && !$is_extra) {
db_pandora_audit("ACL Violation", db_pandora_audit("ACL Violation",
"Trying to access Agent General Information"); "Trying to access Agent General Information");
require_once ("general/noaccess.php"); require_once ("general/noaccess.php");
return; return;
} }
$agent = db_get_row ("tagente", "id_agente", $id_agente);
if ($agent === false) { if ($agent === false) {
ui_print_error_message(__('There was a problem loading agent')); ui_print_error_message(__('There was a problem loading agent'));
return; return;
@ -494,7 +519,7 @@ function treeview_printTable($id_agente, $server_data = array(), $no_head = fals
$cellName = ''; $cellName = '';
} }
$cellName .= ui_print_agent_name ($agent["id_agente"], true, 500, "text-transform: uppercase;", true, $console_url, $url_hash, false, can_user_access_node ()); $cellName .= ui_print_agent_name ($agent["id_agente"], true, 500, "text-transform: uppercase;", true, $console_url, $url_hash, false, $user_access_node);
if ($agent['disabled']) { if ($agent['disabled']) {
$cellName .= ui_print_help_tip(__('Disabled'), true) . "</em>"; $cellName .= ui_print_help_tip(__('Disabled'), true) . "</em>";
@ -563,7 +588,7 @@ function treeview_printTable($id_agente, $server_data = array(), $no_head = fals
//End of table //End of table
$agent_table = html_print_table($table, true); $agent_table = html_print_table($table, true);
if (can_user_access_node () && check_acl ($config["id_user"], $agent["id_grupo"], "AW")) { if ( $user_access_node && check_acl ($config["id_user"], $agent["id_grupo"], "AW")) {
$go_to_agent = '<div style="text-align: right;">'; $go_to_agent = '<div style="text-align: right;">';
$go_to_agent .= '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.$url_hash.'">'; $go_to_agent .= '<a target=_blank href="' . $console_url . 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id_agente.$url_hash.'">';
$go_to_agent .= html_print_submit_button (__('Go to agent edition'), 'upd_button', false, 'class="sub config"', true); $go_to_agent .= html_print_submit_button (__('Go to agent edition'), 'upd_button', false, 'class="sub config"', true);
@ -744,7 +769,11 @@ function treeview_printTable($id_agente, $server_data = array(), $no_head = fals
ui_toggle($table_interfaces, __('Interface information') . ' (SNMP)'); ui_toggle($table_interfaces, __('Interface information') . ' (SNMP)');
} }
if (!empty($server_data) && is_metaconsole()) {
metaconsole_restore_db();
}
return; return;
} }
?> ?>