'; $sec = (string) get_parameter('sec'); $sec2 = (string) get_parameter('sec2'); if ($sec2 == 'operation/agentes/ver_agente') { $sec2 = 'godmode/agentes/configurar_agente'; } else if ($sec2 == 'godmode/servers/discovery') { $wiz = (string) get_parameter('wiz'); $sec2 = 'godmode/servers/discovery&wiz='.$wiz; } else if ($sec2 == 'godmode/groups/group_list') { $tab = (string) get_parameter('tab'); if ($tab === 'credbox') { $sec2 = 'godmode/groups/group_list&tab='.$tab; } } else { $sec2 = (string) get_parameter('sec2'); } $menu_selected = false; $allsec2 = explode('sec2=', $_SERVER['REQUEST_URI']); if (isset($allsec2[1])) { $allsec2 = $allsec2[1]; } else { $allsec2 = $sec2; } // Open list of menu. echo '
'; // Invisible UL for adding border-top. echo ''; } /** * Get all the data structure of menu. Operation and Godmode * * @return array Menu structure. */ function menu_get_full_sec() { global $menu_operation; global $menu_godmode; if ($menu_godmode == null || $menu_operation == null) { return []; } else { $menu = ($menu_operation + $menu_godmode); } unset($menu['class']); menu_add_extras($menu); return $menu; } /** * Build an extra access pages array and merge it with menu * * @param menu array (pass by reference) */ function menu_add_extras(&$menu) { global $config; $menu_extra = []; $menu_extra['gusuarios']['sub']['godmode/users/configure_user']['text'] = __('Configure user'); $menu_extra['gusuarios']['sub']['godmode/users/configure_profile']['text'] = __('Configure profile'); $menu_extra['gmodules']['sub']['godmode/modules/manage_network_templates_form']['text'] = __('Module templates management'); $menu_extra['gmodules']['sub']['godmode/modules/manage_inventory_modules_form']['text'] = __('Inventory modules management'); $menu_extra['gagente']['sub']['godmode/agentes/configurar_agente']['text'] = __('Agents management'); $menu_extra['galertas']['sub']['godmode/alerts/configure_alert_template']['text'] = __('Configure alert template'); $menu_extra['network']['sub']['operation/visual_console/render_view']['text'] = __('View visual console'); $menu_extra['network']['sub']['godmode/reporting/visual_console_builder']['text'] = __('Builder visual console'); $menu_extra['reporting']['sub']['operation/reporting/reporting_viewer']['text'] = __('View reporting'); $menu_extra['reporting']['sub']['operation/reporting/graph_viewer']['text'] = __('Graph viewer'); $menu_extra['reporting']['sub']['godmode/reporting/graph_builder']['text'] = __('Manage custom graphs'); $menu_extra['reporting']['sub']['godmode/reporting/graph_container']['text'] = __('View graph containers'); $menu_extra['reporting']['sub']['godmode/reporting/create_container']['text'] = __('Manage graph containers'); $menu_extra['reporting']['sub']['enterprise/godmode/reporting/graph_template_list']['text'] = __('View graph templates'); $menu_extra['reporting']['sub']['enterprise/godmode/reporting/graph_template_editor']['text'] = __('Manage graph templates'); $menu_extra['reporting']['sub']['enterprise/godmode/reporting/graph_template_item_editor']['text'] = __('Graph template items'); $menu_extra['reporting']['sub']['enterprise/godmode/reporting/graph_template_wizard']['text'] = __('Graph template wizard'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=wizard&action=wizard']['text'] = __('Templates wizard'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=template&action=list_template']['text'] = __('Templates'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&action=edit']['text'] = __('Edit custom reports'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=list_items&action=edit']['text'] = __('List items'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=item_editor&action=new']['text'] = __('Edit item'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=wizard&action=edit']['text'] = __('Wizard'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=wizard_sla&action=edit']['text'] = __('Wizard sla'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=global&action=edit']['text'] = __('Global custom reports'); $menu_extra['reporting']['sub']['godmode/reporting/reporting_builder&tab=advanced&action=edit']['text'] = __('Avanced options'); if ($config['activate_gis']) { $menu_extra['godgismaps']['sub']['godmode/gis_maps/configure_gis_map']['text'] = __('Manage GIS Maps'); } $menu_extra['workspace']['sub']['operation/messages/message_edit']['text'] = __('Manage messages'); $menu_extra['gagente']['sub']['godmode/groups/configure_modu_group']['text'] = __('Manage module groups'); $menu_extra['gagente']['sub']['godmode/agentes/configure_field']['text'] = __('Manage custom field'); $menu_extra['galertas']['sub']['godmode/alerts/configure_alert_action']['text'] = __('Manage alert actions'); $menu_extra['galertas']['sub']['godmode/alerts/configure_alert_command']['text'] = __('Manage commands'); $menu_extra['gservers']['sub']['enterprise/godmode/servers/manage_export_form']['text'] = __('Manage export targets'); $menu_extra['estado']['sub']['snmpconsole']['sub2']['godmode/snmpconsole/snmp_trap_generator']['text'] = __('SNMP trap generator'); $menu_extra['estado']['sub']['snmpconsole']['sub2']['operation/snmpconsole/snmp_view']['text'] = __('SNMP console'); $menu_extra['workspace']['sub']['operation/incidents/incident_detail']['text'] = __('Manage incident'); $menu_extra['gusuarios']['sub']['godmode/groups/configure_group']['text'] = __('Manage groups'); $menu_extra['gusuarios']['sub']['godmode/tag/edit_tag']['text'] = __('Tags management'); // Duplicate extensions as sec=extension to check it from url. foreach ($menu as $k => $m) { if (!isset($m['sub'])) { continue; } foreach ($m['sub'] as $kk => $mm) { if (isset($mm['sec'])) { if (empty($menu[$mm['sec']]['sub'][$kk]['text']) === true) { $menu_extra[$mm['sec']]['sub'][$kk]['text'] = $mm['text']; } } } } $menu = array_merge_recursive($menu, $menu_extra); // Remove the duplicate the text entries. foreach ($menu as $k => $m) { if (!empty($m['text'])) { if (is_array($m['text'])) { $menu[$k]['text'] = reset($m['text']); } } } } /** * Get the sec list built in menu * * @param bool If true, the array returned will have the structure * to combo categories (optgroup) * * @return array Sections list */ function menu_get_sec($with_categories=false) { $menu = menu_get_full_sec(); unset($menu['class']); $in_godmode = false; foreach ($menu as $k => $v) { if ($with_categories) { if (!$in_godmode && $k[0] == 'g') { // Hack to dont confuse with gis activated because godmode // sec starts with g (like gismaps). if ($k != 'gismaps') { $in_godmode = true; } } if ($k === 'discovery') { $in_godmode = true; } if ($in_godmode) { $category = __('Administration'); } else { $category = __('Operation'); } $sec_array[$k]['optgroup'] = $category; $sec_array[$k]['name'] = $v['text']; } else { $sec_array[$k] = $v['text']; } } return $sec_array; } /** * Get the sec list built in menu * * @param bool If true, the array returned will have the structure * to combo categories (optgroup) * * @return array Sections list */ function get_sec($sec=false) { $menu = menu_get_full_sec(); unset($menu['class']); $in_godmode = false; foreach ($menu as $k => $v) { if (isset($v['sub'][$sec])) { return $k; } } return false; } /** * Get the pages in a section * * @param string sec code * @param string menu hash. All the menu structure (For example * returned by menu_get_full_sec(), json encoded and after that * base64 encoded. If this value is false this data is obtained from * menu_get_full_sec(); * * @return array Sections list */ function menu_get_sec_pages($sec, $menu_hash=false) { if (!$menu_hash) { $menu = menu_get_full_sec(); } else { $menu = json_decode(base64_decode($menu_hash), true); } $sec2_array = []; if (isset($sec)) { // Get the sec2 of the main section. $sec2_array[$menu[$sec]['sec2']] = $menu[$sec]['text']; // Get the sec2 of the subsections. foreach ($menu[$sec]['sub'] as $k => $v) { // Avoid special cases of standalone windows. if (preg_match('/^javascript:/', $k) || preg_match('/\.php/', $k)) { if ($sec !== 'links' && $sec !== 'eventos') { continue; } } $sec2_array[$k] = $v['text']; } } $sec2_array = array_unique($sec2_array); return $sec2_array; } /** * Get the pages in a section2 * $menu * * @param string sec code * @param string menu hash. All the menu structure (For example * returned by menu_get_full_sec(), json encoded and after that * base64 encoded. If this value is false this data is obtained from * menu_get_full_sec(); * * @return array Sections list */ function menu_get_sec2_pages($sec, $sec2, $menu_hash=false) { if ($menu_hash === false) { $menu = menu_get_full_sec(); } else { $menu = json_decode(base64_decode($menu_hash), true); } $sec3_array = []; $sec2 = io_safe_output($sec2); if (isset($menu[$sec]['sub']) && isset($menu[$sec]['sub'][$sec2]['sub2'])) { // Get the sec2 of the subsections. foreach ($menu[$sec]['sub'][$sec2]['sub2'] as $k => $v) { $sec3_array[$k] = $v['text']; } } return $sec3_array; } /** * Check if a page (sec2) is in a section (sec) * * @param string section (sec) code * @param string page (sec2)code * * @return true if the page is in section, false otherwise */ function menu_sec2_in_sec($sec, $sec2) { $sec2_array = menu_get_sec_pages($sec); if ($sec2_array != null && in_array($sec2, array_keys($sec2_array))) { return true; } return false; } function menu_sec3_in_sec2($sec, $sec2, $sec3) { $sec3_array = menu_get_sec2_pages($sec, $sec2, $menu_hash = false); if ($sec3_array != null && in_array($sec3, array_keys($sec3_array))) { return true; } return false; } /** * Prepare menu data for enterprise acl conf. * * @param array $pages * @param string $sec * @return string $pages */ function menu_pepare_acl_select_data($pages, $sec) { $exclude_pages = [ 'estado' => 'operation/agentes/tactical', 'network' => 'operation/agentes/networkmap_list', 'extensions' => [ 'operation/extensions', 'enterprise/extensions/vmware', 'extensions/users_connected', ], 'gmodules' => 'godmode/modules/manage_network_templates', 'geventos' => 'godmode/events/events§ion=filter', 'gsetup' => 'godmode/setup/setup§ion=general', ]; foreach ($exclude_pages as $exclude_sec => $sec2) { if ($sec === $exclude_sec) { if (is_array($sec2) === true) { foreach ($sec2 as $value) { unset($pages[$value]); } } unset($pages[$sec2]); } } return $pages; } if (is_ajax()) { $about = (bool) get_parameter('about'); if ($about) { global $config; global $pandora_version; global $build_version; $product_name = io_safe_output(get_product_name()); include_once $config['homedir'].'/include/class/Diagnostics.class.php'; $d = new Diagnostics; $db_health = json_decode($d->getDatabaseHealthStatus()); $db_info = json_decode($d->getDatabaseStatusInfo()); $db_fragmentation = json_decode($d->getTablesFragmentation()); $sys_info = json_decode($d->getSystemInfo()); $php_sys = json_decode($d->getPHPSetup()); $fragmentation_status = ''; if ($db_fragmentation->data->tablesFragmentationStatus->status === 1) { $fragmentation_status = html_print_image( 'images/exito.png', true, [ 'title' => __('Successfully'), 'style' => 'width:15px;', ] ); } else { $fragmentation_status = html_print_image( 'images/error_1.png', true, [ 'title' => __('Error'), 'style' => 'width:15px;', ] ); } $image_about = ui_get_full_url('/images/custom_logo/logo-default-pandorafms.png', false, false, false); if (enterprise_installed() === false) { if ($config['style'] === 'pandora_black') { $image_about = 'images/custom_logo/'.HEADER_LOGO_BLACK_CLASSIC; } else if ($config['style'] === 'pandora') { $image_about = 'images/custom_logo/'.HEADER_LOGO_DEFAULT_CLASSIC; } } else { if ($config['style'] === 'pandora_black' && $config['custom_logo'] === HEADER_LOGO_DEFAULT_CLASSIC) { $config['custom_logo'] = HEADER_LOGO_BLACK_CLASSIC; } else if ($config['style'] === 'pandora' && $config['custom_logo'] === HEADER_LOGO_BLACK_CLASSIC) { $config['custom_logo'] = HEADER_LOGO_DEFAULT_CLASSIC; } $image_about = 'images/custom_logo/'.$config['custom_logo']; if (file_exists(ENTERPRISE_DIR.'/'.$image_about) === true) { $image_about = ENTERPRISE_DIR.'/'.$image_about; } } $dialog = '
'.$product_name.''.__('Version').' '.$pandora_version.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').' '.__('MR version').' MR'.$config['MR'].' '.__('Build').' '.$build_version.' '.__('Support expires').' 2023/04/26 '; if ((bool) check_acl($config['id_user'], 0, 'PM') === true) { $dialog .= ' |
---|
Trademark and copyright 2004 - '.date('Y').' Pandora FMS. All rights reserved
- '.__('Database health status').' |
|
---|---|
'.$db_health->data->unknownAgents->name.' |
'.$db_health->data->unknownAgents->value.' |
'.$db_health->data->notInitAgents->name.' |
'.$db_health->data->notInitAgents->value.' |
'.$db_health->data->pandoraDbLastRun->name.' |
'.$db_health->data->pandoraDbLastRun->value.' |
- '.__('Database status info').' |
|
'.$db_info->data->dbSchemeFirstVersion->name.' |
'.$db_info->data->dbSchemeFirstVersion->value.' |
'.$db_info->data->dbSchemeVersion->name.' |
'.$db_info->data->dbSchemeVersion->value.' |
'.$db_info->data->dbSchemeBuild->name.' |
'.$db_info->data->dbSchemeBuild->value.' |
'.$db_info->data->dbSize->name.' |
'.$db_info->data->dbSize->value.' |
- '.__('Tables fragmentation in the %s database', $product_name).' |
|
'.$db_fragmentation->data->tablesFragmentationMax->name.' |
'.$db_fragmentation->data->tablesFragmentationMax->value.' |
'.$db_fragmentation->data->tablesFragmentationValue->name.' |
'.$db_fragmentation->data->tablesFragmentationValue->value.' |
'.$db_fragmentation->data->tablesFragmentationStatus->name.' |
'.$fragmentation_status.' |
- '.__('System Info').' |
|
---|---|
'.$sys_info->data->cpuInfo->name.' |
'.$sys_info->data->cpuInfo->value.' |
'.$sys_info->data->ramInfo->name.' |
'.$sys_info->data->ramInfo->value.' |
'.$sys_info->data->osInfo->name.' |
'.$sys_info->data->osInfo->value.' |
'.$sys_info->data->hostnameInfo->name.' |
'.$sys_info->data->hostnameInfo->value.' |
'.$sys_info->data->ipInfo->name.' |
'.$sys_info->data->ipInfo->value.' |
- '.__('PHP system').' |
|
---|---|
'.$php_sys->data->phpVersion->name.' |
'.$php_sys->data->phpVersion->value.' |
'.$php_sys->data->maxExecutionTime->name.' |
'.$php_sys->data->maxExecutionTime->value.' |
'.$php_sys->data->maxInputTime->name.' |
'.$php_sys->data->maxInputTime->value.' |
'.$php_sys->data->memoryLimit->name.' |
'.$php_sys->data->memoryLimit->value.' |
'.$php_sys->data->sessionLifetime->name.' |
'.$php_sys->data->sessionLifetime->value.' |