mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-04-08 18:55:09 +02:00
add Remote CMD
This commit is contained in:
parent
be2148ff26
commit
8af72c1c9d
9
pandora_console/extras/mr/33.sql
Normal file
9
pandora_console/extras/mr/33.sql
Normal file
@ -0,0 +1,9 @@
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO `ttipo_modulo` VALUES
|
||||
(34,'remote_cmd', 10, 'Remote CMD command, numeric data', 'mod_remote_cmd.png'),
|
||||
(35,'remote_cmd_proc', 10, 'Remote CMD command, boolean data', 'mod_remote_cmd_proc.png'),
|
||||
(36,'remote_cmd_string', 10, 'Remote CMD command, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||
(37,'remote_cmd_inc', 10, 'Remote CMD command, incremental data', 'mod_remote_cmd_inc.png');
|
||||
|
||||
COMMIT;
|
@ -1654,7 +1654,12 @@ INSERT INTO tmodule VALUES (8, 'Wux module');
|
||||
-- Table `ttipo_modulo`
|
||||
-- ---------------------------------------------------------------------
|
||||
|
||||
INSERT INTO ttipo_modulo VALUES (25,'web_analysis', 8, 'Web analysis data', 'module-wux.png');
|
||||
INSERT INTO `ttipo_modulo` VALUES
|
||||
(25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'),
|
||||
(34,'remote_cmd', 10, 'Remote CMD command, numeric data', 'mod_remote_cmd.png'),
|
||||
(35,'remote_cmd_proc', 10, 'Remote CMD command, boolean data', 'mod_remote_cmd_proc.png'),
|
||||
(36,'remote_cmd_string', 10, 'Remote CMD command, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||
(37,'remote_cmd_inc', 10, 'Remote CMD command, incremental data', 'mod_remote_cmd_inc.png');
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tdashboard`
|
||||
@ -2293,3 +2298,4 @@ CREATE TABLE `tdeployment_hosts` (
|
||||
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
|
||||
ON UPDATE CASCADE ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
@ -13,7 +13,8 @@ switch ($_GET['module']) {
|
||||
$sql = sprintf(
|
||||
'SELECT id_tipo, descripcion
|
||||
FROM ttipo_modulo
|
||||
WHERE categoria between 3 and 5 '
|
||||
WHERE categoria between 3 and 5
|
||||
OR categoria = 10 '
|
||||
);
|
||||
break;
|
||||
|
||||
|
@ -1330,7 +1330,7 @@ if ($update_module || $create_module) {
|
||||
// Change double quotes by single.
|
||||
$snmp_oid = preg_replace('/"/', ''', $snmp_oid);
|
||||
|
||||
if (empty($snmp_oid)) {
|
||||
if (empty($snmp_oid) === true) {
|
||||
// The user did not set any OID manually but did a SNMP walk.
|
||||
$snmp_oid = (string) get_parameter('select_snmp_oid');
|
||||
}
|
||||
@ -1339,18 +1339,31 @@ if ($update_module || $create_module) {
|
||||
// New support for snmp v3.
|
||||
$tcp_send = (string) get_parameter('snmp_version');
|
||||
$plugin_user = (string) get_parameter('snmp3_auth_user');
|
||||
$plugin_pass = io_input_password((string) get_parameter('snmp3_auth_pass'));
|
||||
$plugin_pass = io_input_password(
|
||||
(string) get_parameter('snmp3_auth_pass')
|
||||
);
|
||||
$plugin_parameter = (string) get_parameter('snmp3_auth_method');
|
||||
|
||||
$custom_string_1 = (string) get_parameter('snmp3_privacy_method');
|
||||
$custom_string_2 = io_input_password((string) get_parameter('snmp3_privacy_pass'));
|
||||
$custom_string_2 = io_input_password(
|
||||
(string) get_parameter('snmp3_privacy_pass')
|
||||
);
|
||||
$custom_string_3 = (string) get_parameter('snmp3_security_level');
|
||||
} else if ($id_module_type >= 34 && $id_module_type <= 37) {
|
||||
hd($_POST);
|
||||
$tcp_send = (string) get_parameter('command_text');
|
||||
$custom_string_1 = (string) get_parameter(
|
||||
'command_credential_identifier'
|
||||
);
|
||||
$custom_string_2 = (string) get_parameter('command_os');
|
||||
} else {
|
||||
$plugin_user = (string) get_parameter('plugin_user');
|
||||
if (get_parameter('id_module_component_type') == 7) {
|
||||
$plugin_pass = (int) get_parameter('plugin_pass');
|
||||
} else {
|
||||
$plugin_pass = io_input_password((string) get_parameter('plugin_pass'));
|
||||
$plugin_pass = io_input_password(
|
||||
(string) get_parameter('plugin_pass')
|
||||
);
|
||||
}
|
||||
|
||||
$plugin_parameter = (string) get_parameter('plugin_parameter');
|
||||
|
@ -1,16 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Modules
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
require_once 'include/functions_network_components.php';
|
||||
enterprise_include_once('include/functions_local_components.php');
|
||||
|
||||
@ -19,18 +35,27 @@ if (is_ajax()) {
|
||||
$snmp_walk = (bool) get_parameter('snmp_walk');
|
||||
$get_module_component = (bool) get_parameter('get_module_component');
|
||||
$get_module_components = (bool) get_parameter('get_module_components');
|
||||
$get_module_local_components = (bool) get_parameter('get_module_local_components');
|
||||
$get_module_local_component = (bool) get_parameter('get_module_local_component');
|
||||
$get_module_local_components = (bool) get_parameter(
|
||||
'get_module_local_components'
|
||||
);
|
||||
$get_module_local_component = (bool) get_parameter(
|
||||
'get_module_local_component'
|
||||
);
|
||||
|
||||
if ($get_module_component) {
|
||||
$id_component = (int) get_parameter('id_module_component');
|
||||
|
||||
$component = db_get_row('tnetwork_component', 'id_nc', $id_component);
|
||||
|
||||
$component['throw_unknown_events'] = network_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN);
|
||||
$component['throw_unknown_events'] = network_components_is_disable_type_event(
|
||||
$id_component,
|
||||
EVENTS_GOING_UNKNOWN
|
||||
);
|
||||
|
||||
// Decrypt passwords in the component.
|
||||
$component['plugin_pass'] = io_output_password($component['plugin_pass']);
|
||||
$component['plugin_pass'] = io_output_password(
|
||||
$component['plugin_pass']
|
||||
);
|
||||
|
||||
$component['str_warning'] = io_safe_output($component['str_warning']);
|
||||
$component['str_critical'] = io_safe_output($component['str_critical']);
|
||||
@ -83,33 +108,29 @@ if (is_ajax()) {
|
||||
|
||||
$component = db_get_row('tlocal_component', 'id', $id_component);
|
||||
foreach ($component as $index => $element) {
|
||||
$component[$index] = html_entity_decode($element, ENT_QUOTES, 'UTF-8');
|
||||
$component[$index] = html_entity_decode(
|
||||
$element,
|
||||
ENT_QUOTES,
|
||||
'UTF-8'
|
||||
);
|
||||
}
|
||||
|
||||
$typeName = local_components_parse_module_extract_value('module_type', $component['data']);
|
||||
$typeName = local_components_parse_module_extract_value(
|
||||
'module_type',
|
||||
$component['data']
|
||||
);
|
||||
|
||||
switch ($config['dbtype']) {
|
||||
case 'mysql':
|
||||
$component['type'] = db_get_value_sql(
|
||||
'
|
||||
SELECT id_tipo
|
||||
FROM ttipo_modulo
|
||||
WHERE nombre LIKE "'.$typeName.'"'
|
||||
);
|
||||
break;
|
||||
$component['type'] = db_get_value_sql(
|
||||
'
|
||||
SELECT id_tipo
|
||||
FROM ttipo_modulo
|
||||
WHERE nombre LIKE "'.$typeName.'"'
|
||||
);
|
||||
|
||||
case 'postgresql':
|
||||
case 'oracle':
|
||||
$component['type'] = db_get_value_sql(
|
||||
'
|
||||
SELECT id_tipo
|
||||
FROM ttipo_modulo
|
||||
WHERE nombre LIKE \''.$typeName.'\''
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
$component['throw_unknown_events'] = !local_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN);
|
||||
$component['throw_unknown_events'] = !local_components_is_disable_type_event(
|
||||
$id_component,
|
||||
EVENTS_GOING_UNKNOWN
|
||||
);
|
||||
|
||||
echo io_json_mb_encode($component);
|
||||
return;
|
||||
@ -136,7 +157,9 @@ if (is_ajax()) {
|
||||
$snmp3_auth_method = get_parameter('snmp3_auth_method');
|
||||
$snmp3_auth_pass = io_safe_output(get_parameter('snmp3_auth_pass'));
|
||||
$snmp3_privacy_method = get_parameter('snmp3_privacy_method');
|
||||
$snmp3_privacy_pass = io_safe_output(get_parameter('snmp3_privacy_pass'));
|
||||
$snmp3_privacy_pass = io_safe_output(
|
||||
get_parameter('snmp3_privacy_pass')
|
||||
);
|
||||
$snmp_port = get_parameter('snmp_port');
|
||||
|
||||
$snmpwalk = get_snmpwalk(
|
||||
@ -177,7 +200,7 @@ require_once 'include/functions_exportserver.php';
|
||||
require_once $config['homedir'].'/include/functions_modules.php';
|
||||
require_once $config['homedir'].'/include/functions_agents.php';
|
||||
|
||||
// Reading a module
|
||||
// Reading a module.
|
||||
if ($id_agent_module) {
|
||||
$module = modules_get_agentmodule($id_agent_module);
|
||||
$moduletype = $module['id_modulo'];
|
||||
@ -202,19 +225,25 @@ if ($id_agent_module) {
|
||||
$snmp_community = $module['snmp_community'];
|
||||
$snmp_oid = $module['snmp_oid'];
|
||||
|
||||
// New support for snmp v3
|
||||
// New support for snmp v3.
|
||||
$snmp_version = $module['tcp_send'];
|
||||
$snmp3_auth_user = $module['plugin_user'];
|
||||
$snmp3_auth_pass = io_output_password($module['plugin_pass']);
|
||||
|
||||
// Auth method could be MD5 or SHA
|
||||
// Auth method could be MD5 or SHA.
|
||||
$snmp3_auth_method = $module['plugin_parameter'];
|
||||
|
||||
// Privacy method could be DES or AES
|
||||
// Privacy method could be DES or AES.
|
||||
$snmp3_privacy_method = $module['custom_string_1'];
|
||||
$snmp3_privacy_pass = io_output_password($module['custom_string_2']);
|
||||
|
||||
// Security level Could be noAuthNoPriv | authNoPriv | authPriv
|
||||
// For Remote cmd fields are reused:
|
||||
// tcp_send, custom_string_1, custom_string_2.
|
||||
$command_text = $module['tcp_send'];
|
||||
$command_credential_identifier = $module['custom_string_1'];
|
||||
$command_os = $module['custom_string_2'];
|
||||
|
||||
// Security level Could be noAuthNoPriv | authNoPriv | authPriv.
|
||||
$snmp3_security_level = $module['custom_string_3'];
|
||||
|
||||
$ip_target = $module['ip_target'];
|
||||
@ -265,39 +294,39 @@ if ($id_agent_module) {
|
||||
$id_category = $module['id_category'];
|
||||
|
||||
$cron_interval = explode(' ', $module['cron_interval']);
|
||||
if (isset($cron_interval[4])) {
|
||||
if (isset($cron_interval[4]) === true) {
|
||||
$minute_from = $cron_interval[0];
|
||||
$minute = explode('-', $minute_from);
|
||||
$minute_from = $minute[0];
|
||||
if (isset($minute[1])) {
|
||||
if (isset($minute[1]) === true) {
|
||||
$minute_to = $minute[1];
|
||||
}
|
||||
|
||||
$hour_from = $cron_interval[1];
|
||||
$h = explode('-', $hour_from);
|
||||
$hour_from = $h[0];
|
||||
if (isset($h[1])) {
|
||||
if (isset($h[1]) === true) {
|
||||
$hour_to = $h[1];
|
||||
}
|
||||
|
||||
$mday_from = $cron_interval[2];
|
||||
$md = explode('-', $mday_from);
|
||||
$mday_from = $md[0];
|
||||
if (isset($md[1])) {
|
||||
if (isset($md[1]) === true) {
|
||||
$mday_to = $md[1];
|
||||
}
|
||||
|
||||
$month_from = $cron_interval[3];
|
||||
$m = explode('-', $month_from);
|
||||
$month_from = $m[0];
|
||||
if (isset($m[1])) {
|
||||
if (isset($m[1]) === true) {
|
||||
$month_to = $m[1];
|
||||
}
|
||||
|
||||
$wday_from = $cron_interval[4];
|
||||
$wd = explode('-', $wday_from);
|
||||
$wday_from = $wd[0];
|
||||
if (isset($wd[1])) {
|
||||
if (isset($wd[1]) === true) {
|
||||
$wday_to = $wd[1];
|
||||
}
|
||||
} else {
|
||||
@ -315,14 +344,17 @@ if ($id_agent_module) {
|
||||
}
|
||||
|
||||
$module_macros = null;
|
||||
if (isset($module['module_macros'])) {
|
||||
$module_macros = json_decode(base64_decode($module['module_macros']), true);
|
||||
if (isset($module['module_macros']) === true) {
|
||||
$module_macros = json_decode(
|
||||
base64_decode($module['module_macros']),
|
||||
true
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if (!isset($moduletype)) {
|
||||
if (isset($moduletype) === false) {
|
||||
$moduletype = (string) get_parameter('moduletype');
|
||||
|
||||
// Clean up specific network modules fields
|
||||
// Clean up specific network modules fields.
|
||||
$name = '';
|
||||
$description = '';
|
||||
$id_module_group = 1;
|
||||
@ -374,7 +406,7 @@ if ($id_agent_module) {
|
||||
$str_critical = '';
|
||||
$ff_event = 0;
|
||||
|
||||
// New support for snmp v3
|
||||
// New support for snmp v3.
|
||||
$snmp_version = 1;
|
||||
$snmp3_auth_user = '';
|
||||
$snmp3_auth_pass = '';
|
||||
@ -383,6 +415,11 @@ if ($id_agent_module) {
|
||||
$snmp3_privacy_pass = '';
|
||||
$snmp3_security_level = '';
|
||||
|
||||
// For Remote CMD.
|
||||
$command_text = '';
|
||||
$command_credential_identifier = '';
|
||||
$command_os = '';
|
||||
|
||||
$critical_instructions = '';
|
||||
$warning_instructions = '';
|
||||
$unknown_instructions = '';
|
||||
@ -418,7 +455,9 @@ if ($id_agent_module) {
|
||||
}
|
||||
}
|
||||
|
||||
$is_function_policies = enterprise_include_once('include/functions_policies.php');
|
||||
$is_function_policies = enterprise_include_once(
|
||||
'include/functions_policies.php'
|
||||
);
|
||||
|
||||
if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
||||
$relink_policy = get_parameter('relink_policy', 0);
|
||||
@ -428,19 +467,32 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
||||
$policy_info = policies_info_module_policy($id_agent_module);
|
||||
$policy_id = $policy_info['id_policy'];
|
||||
|
||||
if ($relink_policy && policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING) {
|
||||
ui_print_error_message(__('This policy is applying and cannot be modified'));
|
||||
if ($relink_policy
|
||||
&& policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING
|
||||
) {
|
||||
ui_print_error_message(
|
||||
__('This policy is applying and cannot be modified')
|
||||
);
|
||||
} else {
|
||||
$result = policies_relink_module($id_agent_module);
|
||||
ui_print_result_message($result, __('Module will be linked in the next application'));
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Module will be linked in the next application')
|
||||
);
|
||||
|
||||
db_pandora_audit('Agent management', 'Re-link module '.$id_agent_module);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
'Re-link module '.$id_agent_module
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($unlink_policy) {
|
||||
$result = policies_unlink_module($id_agent_module);
|
||||
ui_print_result_message($result, __('Module will be unlinked in the next application'));
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
__('Module will be unlinked in the next application')
|
||||
);
|
||||
|
||||
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
|
||||
}
|
||||
@ -452,7 +504,7 @@ $remote_conf = false;
|
||||
|
||||
if ($__code_from !== 'policies') {
|
||||
// Only check in the module editor.
|
||||
// Check ACL tags
|
||||
// Check ACL tags.
|
||||
$tag_acl = true;
|
||||
|
||||
// If edit a existing module.
|
||||
@ -479,12 +531,12 @@ switch ($moduletype) {
|
||||
$remote_conf = false;
|
||||
if (enterprise_installed()) {
|
||||
enterprise_include_once('include/functions_config_agents.php');
|
||||
$remote_conf = enterprise_hook('config_agents_has_remote_configuration', [$id_agente]);
|
||||
$remote_conf = enterprise_hook(
|
||||
'config_agents_has_remote_configuration',
|
||||
[$id_agente]
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
Categories is an array containing the allowed module types
|
||||
(generic_data, generic_string, etc) from ttipo_modulo (field categoria) */
|
||||
$categories = [
|
||||
0,
|
||||
1,
|
||||
@ -503,12 +555,16 @@ switch ($moduletype) {
|
||||
'config_agents_get_module_from_conf',
|
||||
[
|
||||
$id_agente,
|
||||
io_safe_output(modules_get_agentmodule_name($id_agent_module)),
|
||||
io_safe_output(
|
||||
modules_get_agentmodule_name($id_agent_module)
|
||||
),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
enterprise_include('godmode/agentes/module_manager_editor_data.php');
|
||||
enterprise_include(
|
||||
'godmode/agentes/module_manager_editor_data.php'
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -519,6 +575,7 @@ switch ($moduletype) {
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
10,
|
||||
];
|
||||
include 'module_manager_editor_common.php';
|
||||
include 'module_manager_editor_network.php';
|
||||
@ -562,9 +619,12 @@ switch ($moduletype) {
|
||||
include 'module_manager_editor_wmi.php';
|
||||
break;
|
||||
|
||||
// WARNING: type 7 is reserved on enterprise
|
||||
// WARNING: type 7 is reserved on enterprise.
|
||||
default:
|
||||
if (enterprise_include('godmode/agentes/module_manager_editor.php') === ENTERPRISE_NOT_HOOK) {
|
||||
if (enterprise_include(
|
||||
'godmode/agentes/module_manager_editor.php'
|
||||
) === ENTERPRISE_NOT_HOOK
|
||||
) {
|
||||
ui_print_error_message(sprintf(__('Invalid module type')));
|
||||
return;
|
||||
}
|
||||
@ -580,7 +640,7 @@ if ($config['enterprise_installed'] && $id_agent_module) {
|
||||
|
||||
echo '<h3 id="message" class="error invisible"></h3>';
|
||||
|
||||
// TODO: Change to the ui_print_error system
|
||||
// TODO: Change to the ui_print_error system.
|
||||
echo '<form method="post" id="module_form">';
|
||||
|
||||
ui_toggle(
|
||||
@ -602,12 +662,18 @@ ui_toggle(
|
||||
|
||||
if ($moduletype != 13) {
|
||||
ui_toggle(
|
||||
html_print_table($table_new_relations, true).html_print_table($table_relations, true),
|
||||
html_print_table(
|
||||
$table_new_relations,
|
||||
true
|
||||
).html_print_table(
|
||||
$table_relations,
|
||||
true
|
||||
),
|
||||
__('Module relations')
|
||||
);
|
||||
}
|
||||
|
||||
// Submit
|
||||
// Submit.
|
||||
echo '<div class="action-buttons" style="width: '.$table_simple->width.'">';
|
||||
if ($id_agent_module) {
|
||||
html_print_submit_button(
|
||||
@ -659,38 +725,84 @@ ui_require_javascript_file('pandora_modules');
|
||||
<script language="javascript">
|
||||
/* <![CDATA[ */
|
||||
var no_name_lang =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module name provided') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No module name provided'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
var no_target_lang =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No target IP provided') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No target IP provided'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
var no_oid_lang =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No SNMP OID provided') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No SNMP OID provided'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
var no_prediction_module_lang =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module to predict') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No module to predict'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
var no_plugin_lang =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No plug-in provided') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No plug-in provided'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
var no_execute_test_from =`
|
||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No server provided') ]); ?>
|
||||
<?php
|
||||
echo ui_print_info_message(
|
||||
[
|
||||
'no_close' => true,
|
||||
'message' => __('No server provided'),
|
||||
]
|
||||
);
|
||||
?>
|
||||
`;
|
||||
|
||||
$(document).ready (function () {
|
||||
configure_modules_form ();
|
||||
|
||||
$("#module_form").submit(function() {
|
||||
if (typeof(check_remote_conf) != 'undefined') {
|
||||
if (typeof(check_remote_conf) != 'undefined') {
|
||||
if (check_remote_conf) {
|
||||
//Check the name
|
||||
//Check the name.
|
||||
name = $("#text-name").val();
|
||||
remote_config = $("#textarea_configuration_data").val();
|
||||
|
||||
regexp_name = new RegExp('module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g, "\\$1") +"\n");
|
||||
|
||||
|
||||
regexp_name = new RegExp(
|
||||
'module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g,
|
||||
"\\$1"
|
||||
) +"\n"
|
||||
);
|
||||
|
||||
regexp_plugin = new RegExp('^module_plugin\\s*');
|
||||
|
||||
|
||||
if (remote_config == '' || remote_config.match(regexp_name) ||
|
||||
remote_config.match(regexp_plugin) ||
|
||||
$("#id_module_type").val()==100 ||
|
||||
@ -698,15 +810,15 @@ $(document).ready (function () {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
alert("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>");
|
||||
alert ("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
|
||||
function checkKeepaliveModule() {
|
||||
// keepalive modules have id = 100
|
||||
if ($("#id_module_type").val()==100 ||
|
||||
@ -720,11 +832,10 @@ $(document).ready (function () {
|
||||
$("#simple-configuration_data").show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
checkKeepaliveModule();
|
||||
|
||||
|
||||
$("#id_module_type").change (function () {
|
||||
checkKeepaliveModule();
|
||||
});
|
||||
@ -741,11 +852,15 @@ function handleFileSelect() {
|
||||
err_msg_2 = "<?php echo __('Couldn`t find the fileinput element.'); ?>";
|
||||
err_msg_3 = "<?php echo __('This browser doesn`t seem to support the files property of file inputs.'); ?>";
|
||||
err_msg_4 = "<?php echo __('Please select a file before clicking Load'); ?>";
|
||||
|
||||
if (!window.File || !window.FileReader || !window.FileList || !window.Blob) {
|
||||
|
||||
if (!window.File ||
|
||||
!window.FileReader ||
|
||||
!window.FileList ||
|
||||
!window.Blob
|
||||
) {
|
||||
$('#mssg_error_div').append(err_msg_1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
input = document.getElementById('file-file_html_text');
|
||||
|
||||
@ -756,7 +871,7 @@ function handleFileSelect() {
|
||||
$('#mssg_error_div').append(err_msg_3);
|
||||
}
|
||||
else if (!input.files[0]) {
|
||||
$('#mssg_error_div').append(err_msg_4);
|
||||
$('#mssg_error_div').append(err_msg_4);
|
||||
}
|
||||
else {
|
||||
file = input.files[0];
|
||||
@ -767,7 +882,9 @@ function handleFileSelect() {
|
||||
}
|
||||
|
||||
function receivedText() {
|
||||
document.getElementById('textarea_custom_string_1').appendChild(document.createTextNode(fr.result));
|
||||
}
|
||||
document
|
||||
.getElementById('textarea_custom_string_1')
|
||||
.appendChild(document.createTextNode(fr.result));
|
||||
}
|
||||
/* ]]> */
|
||||
</script>
|
||||
|
@ -132,7 +132,7 @@ function add_component_selection($id_network_component_type)
|
||||
require_once 'include/functions_network_components.php';
|
||||
enterprise_include_once('include/functions_policies.php');
|
||||
|
||||
// If code comes from policies disable export select
|
||||
// If code comes from policies disable export select.
|
||||
global $__code_from;
|
||||
|
||||
$disabledBecauseInPolicy = false;
|
||||
@ -209,8 +209,7 @@ $table_simple->data[0][1] = html_print_input_text_extended(
|
||||
$largeClassDisabledBecauseInPolicy,
|
||||
true
|
||||
);
|
||||
// $table_simple->data[0][1] = html_print_input_text ('name',
|
||||
// io_safe_output($name), '', 45, 100, true, $disabledBecauseInPolicy);
|
||||
|
||||
if (!empty($id_agent_module) && isset($id_agente)) {
|
||||
$table_simple->data[0][1] .= ' <b>'.__('ID').'</b> '.$id_agent_module.' ';
|
||||
|
||||
@ -237,7 +236,13 @@ if ($policy_link != 0) {
|
||||
}
|
||||
|
||||
$table_simple->data[0][2] = __('Disabled');
|
||||
$table_simple->data[0][2] .= html_print_checkbox('disabled', 1, $disabled, true, $disabled_enable);
|
||||
$table_simple->data[0][2] .= html_print_checkbox(
|
||||
'disabled',
|
||||
1,
|
||||
$disabled,
|
||||
true,
|
||||
$disabled_enable
|
||||
);
|
||||
$table_simple->data[0][3] = __('Module group');
|
||||
$table_simple->data[0][3] .= html_print_select_from_sql(
|
||||
'SELECT id_mg, name FROM tmodule_group ORDER BY name',
|
||||
@ -260,12 +265,18 @@ if ((isset($id_agent_module) && $id_agent_module) || $id_policy_module != 0) {
|
||||
|
||||
$in_policy = strstr($page, 'policy_modules');
|
||||
if (!$in_policy) {
|
||||
// Cannot select the current module to be itself parent
|
||||
$module_parent_filter = $id_agent_module ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : '';
|
||||
// Cannot select the current module to be itself parent.
|
||||
$module_parent_filter = ($id_agent_module) ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : '';
|
||||
$table_simple->data[1][0] = __('Module parent');
|
||||
$modules_can_be_parent = agents_get_modules($id_agente, false, $module_parent_filter);
|
||||
// If the user cannot have access to parent module, only print the name
|
||||
if ($parent_module_id != 0 && !in_array($parent_module_id, array_keys($modules_can_be_parent))) {
|
||||
$modules_can_be_parent = agents_get_modules(
|
||||
$id_agente,
|
||||
false,
|
||||
$module_parent_filter
|
||||
);
|
||||
// If the user cannot have access to parent module, only print the name.
|
||||
if ($parent_module_id != 0
|
||||
&& !in_array($parent_module_id, array_keys($modules_can_be_parent))
|
||||
) {
|
||||
$table_simple->data[1][1] = db_get_value(
|
||||
'nombre',
|
||||
'tagente_modulo',
|
||||
@ -305,7 +316,11 @@ if (!$edit) {
|
||||
}
|
||||
|
||||
$table_simple->data[2][1] = '<em>'.modules_get_moduletype_description($id_module_type).' ('.$type_names_hash[$id_module_type].')</em>';
|
||||
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true);
|
||||
$table_simple->data[2][1] .= html_print_input_hidden(
|
||||
'type_names',
|
||||
base64_encode(io_json_mb_encode($type_names_hash)),
|
||||
true
|
||||
);
|
||||
} else {
|
||||
if (isset($id_module_type)) {
|
||||
$idModuleType = $id_module_type;
|
||||
@ -313,12 +328,13 @@ if (!$edit) {
|
||||
$idModuleType = '';
|
||||
}
|
||||
|
||||
// Removed web analysis and log4x from select
|
||||
// Removed web analysis and log4x from select.
|
||||
$sql = sprintf(
|
||||
'SELECT id_tipo, descripcion, nombre
|
||||
'SELECT id_tipo, descripcion, nombre, categoria
|
||||
FROM ttipo_modulo
|
||||
WHERE categoria IN (%s) AND id_tipo NOT IN (24, 25)
|
||||
ORDER BY descripcion',
|
||||
WHERE categoria IN (%s)
|
||||
AND id_tipo NOT IN (24, 25)
|
||||
ORDER BY id_tipo ASC',
|
||||
implode(',', $categories)
|
||||
);
|
||||
|
||||
@ -326,7 +342,9 @@ if (!$edit) {
|
||||
|
||||
$type_names_hash = [];
|
||||
$type_description_hash = [];
|
||||
if (isset($type_names) && is_array($type_names)) {
|
||||
if (isset($type_names) === true
|
||||
&& is_array($type_names) === true
|
||||
) {
|
||||
foreach ($type_names as $tn) {
|
||||
$type_names_hash[$tn['id_tipo']] = $tn['nombre'];
|
||||
$type_description_hash[$tn['id_tipo']] = $tn['descripcion'];
|
||||
@ -342,7 +360,7 @@ if (!$edit) {
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
false,
|
||||
@ -350,8 +368,12 @@ if (!$edit) {
|
||||
100
|
||||
);
|
||||
|
||||
// Store the relation between id and name of the types on a hidden field
|
||||
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true);
|
||||
// Store the relation between id and name of the types on a hidden field.
|
||||
$table_simple->data[2][1] .= html_print_input_hidden(
|
||||
'type_names',
|
||||
base64_encode(io_json_mb_encode($type_names_hash)),
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if ($edit_module) {
|
||||
@ -380,15 +402,32 @@ if ($edit_module) {
|
||||
$help_header = 'webserver_module_tab';
|
||||
}
|
||||
|
||||
$table_simple->data[2][0] = __('Type').' '.ui_print_help_icon($help_header, true);
|
||||
$table_simple->data[2][0] = __('Type').' ';
|
||||
$table_simple->data[2][0] .= ui_print_help_icon($help_header, true);
|
||||
}
|
||||
|
||||
if ($disabledBecauseInPolicy) {
|
||||
$table_simple->data[2][3] .= html_print_input_hidden('id_module_group', $id_module_group, true);
|
||||
$table_simple->data[2][3] .= html_print_input_hidden(
|
||||
'id_module_group',
|
||||
$id_module_group,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
$table_simple->data[3][0] = __('Dynamic Threshold Interval');
|
||||
$table_simple->data[3][1] = html_print_extended_select_for_time('dynamic_interval', $dynamic_interval, '', 'None', '0', 10, true, 'width:150px', false, $classdisabledBecauseInPolicy, $disabledBecauseInPolicy);
|
||||
$table_simple->data[3][1] = html_print_extended_select_for_time(
|
||||
'dynamic_interval',
|
||||
$dynamic_interval,
|
||||
'',
|
||||
'None',
|
||||
'0',
|
||||
10,
|
||||
true,
|
||||
'width:150px',
|
||||
false,
|
||||
$classdisabledBecauseInPolicy,
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
$table_simple->data[3][1] .= '<a onclick=advanced_option_dynamic()>'.html_print_image('images/cog.png', true, ['title' => __('Advanced options Dynamic Threshold')]).'</a>';
|
||||
if ($in_policy) {
|
||||
$table_simple->cellclass[2][2] = 'hide_dinamic';
|
||||
|
@ -1,30 +1,50 @@
|
||||
<?php
|
||||
/**
|
||||
* Extension to manage a list of gateways and the node address where they should
|
||||
* point to.
|
||||
*
|
||||
* @category Extensions
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation for version 2.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
global $config;
|
||||
|
||||
require_once $config['homedir'].'/include/functions_snmp_browser.php';
|
||||
$snmp_browser_path = is_metaconsole() ? '../../' : '';
|
||||
$snmp_browser_path = (is_metaconsole()) ? '../../' : '';
|
||||
$snmp_browser_path .= 'include/javascript/pandora_snmp_browser.js';
|
||||
echo "<script type='text/javascript' src='$snmp_browser_path'></script>";
|
||||
// This line does not run with the dinamic loader editor in policies.
|
||||
// ui_require_javascript_file ('pandora_snmp_browser');
|
||||
// WARNING REPEAT input hidden errors in console
|
||||
// Save some variables for javascript functions
|
||||
// html_print_input_hidden ('ajax_url', ui_get_full_url("ajax.php"), false);
|
||||
// html_print_input_hidden ('search_matches_translation', __("Search matches"), false);
|
||||
// Define a custom action to save the OID selected in the SNMP browser to the form
|
||||
html_print_input_hidden('custom_action', urlencode(base64_encode(' <a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>')), false);
|
||||
echo "<script type='text/javascript' src='".$snmp_browser_path."'></script>";
|
||||
|
||||
// Define a custom action to save the OID selected
|
||||
// in the SNMP browser to the form.
|
||||
html_print_input_hidden(
|
||||
'custom_action',
|
||||
urlencode(
|
||||
base64_encode(
|
||||
' <a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>'
|
||||
)
|
||||
),
|
||||
false
|
||||
);
|
||||
|
||||
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
||||
|
||||
@ -50,17 +70,15 @@ if (strstr($page, 'policy_modules') === false) {
|
||||
define('ID_NETWORK_COMPONENT_TYPE', 2);
|
||||
|
||||
if (empty($update_module_id)) {
|
||||
// Function in module_manager_editor_common.php
|
||||
// Function in module_manager_editor_common.php.
|
||||
add_component_selection(ID_NETWORK_COMPONENT_TYPE);
|
||||
} else {
|
||||
// TODO: Print network component if available
|
||||
}
|
||||
|
||||
$extra_title = __('Network server module');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Target IP');
|
||||
// show agent_for defect;
|
||||
// Show agent_for defect.
|
||||
if ($page == 'enterprise/godmode/policies/policy_modules') {
|
||||
if ($ip_target != 'auto' && $ip_target != '') {
|
||||
$custom_ip_target = $ip_target;
|
||||
@ -100,7 +118,7 @@ if ($page == 'enterprise/godmode/policies/policy_modules') {
|
||||
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
|
||||
}
|
||||
|
||||
// In ICMP modules, port is not configurable
|
||||
// In ICMP modules, port is not configurable.
|
||||
if ($id_module_type >= 6 && $id_module_type <= 7) {
|
||||
$data[2] = '';
|
||||
$data[3] = '';
|
||||
@ -148,7 +166,15 @@ if (!$adopt) {
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
} else {
|
||||
$data[1] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true, false);
|
||||
$data[1] = html_print_input_text(
|
||||
'snmp_community',
|
||||
$snmp_community,
|
||||
'',
|
||||
15,
|
||||
60,
|
||||
true,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
$data[2] = _('SNMP version');
|
||||
@ -213,8 +239,27 @@ $data[1] .= html_print_input_text(
|
||||
$classdisabledBecauseInPolicy
|
||||
);
|
||||
$data[1] .= '<span class="invisible" id="oid">';
|
||||
$data[1] .= html_print_select([], 'select_snmp_oid', $snmp_oid, '', '', 0, true, false, false, '', $disabledBecauseInPolicy);
|
||||
$data[1] .= html_print_image('images/edit.png', true, ['class' => 'invisible clickable', 'id' => 'edit_oid']);
|
||||
$data[1] .= html_print_select(
|
||||
[],
|
||||
'select_snmp_oid',
|
||||
$snmp_oid,
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
$data[1] .= html_print_image(
|
||||
'images/edit.png',
|
||||
true,
|
||||
[
|
||||
'class' => 'invisible clickable',
|
||||
'id' => 'edit_oid',
|
||||
]
|
||||
);
|
||||
$data[1] .= '</span>';
|
||||
$data[1] .= '</span><span class="right" style="width: 50%; text-align: right">';
|
||||
$data[1] .= html_print_button(
|
||||
@ -231,42 +276,50 @@ $table_simple->colspan['snmp_2'][1] = 3;
|
||||
|
||||
push_table_simple($data, 'snmp_2');
|
||||
|
||||
// Advanced stuff
|
||||
// Advanced stuff.
|
||||
$data = [];
|
||||
$data[0] = __('TCP send');
|
||||
$data[1] = html_print_textarea('tcp_send', 2, 65, $tcp_send, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy);
|
||||
$data[1] = html_print_textarea(
|
||||
'tcp_send',
|
||||
2,
|
||||
65,
|
||||
$tcp_send,
|
||||
$disabledTextBecauseInPolicy,
|
||||
true,
|
||||
$largeclassdisabledBecauseInPolicy
|
||||
);
|
||||
$table_simple->colspan['tcp_send'][1] = 3;
|
||||
|
||||
push_table_simple($data, 'tcp_send');
|
||||
|
||||
$data[0] = __('TCP receive');
|
||||
$data[1] = html_print_textarea('tcp_rcv', 2, 65, $tcp_rcv, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy);
|
||||
$data[1] = html_print_textarea(
|
||||
'tcp_rcv',
|
||||
2,
|
||||
65,
|
||||
$tcp_rcv,
|
||||
$disabledTextBecauseInPolicy,
|
||||
true,
|
||||
$largeclassdisabledBecauseInPolicy
|
||||
);
|
||||
$table_simple->colspan['tcp_receive'][1] = 3;
|
||||
|
||||
push_table_simple($data, 'tcp_receive');
|
||||
|
||||
if ($id_module_type < 8 || $id_module_type > 11) {
|
||||
// NOT TCP
|
||||
// NOT TCP.
|
||||
$table_simple->rowstyle['tcp_send'] = 'display: none;';
|
||||
$table_simple->rowstyle['tcp_receive'] = 'display: none;';
|
||||
}
|
||||
|
||||
if ($id_module_type < 15 || $id_module_type > 18) {
|
||||
// NOT SNMP
|
||||
// NOT SNMP.
|
||||
$table_simple->rowstyle['snmp_1'] = 'display: none';
|
||||
$table_simple->rowstyle['snmp_2'] = 'display: none';
|
||||
}
|
||||
|
||||
// For a policy
|
||||
if (!isset($id_agent_module)) {
|
||||
$snmp3_auth_user = '';
|
||||
$snmp3_auth_pass = '';
|
||||
$snmp_version = 1;
|
||||
$snmp3_privacy_method = '';
|
||||
$snmp3_privacy_pass = '';
|
||||
$snmp3_auth_method = '';
|
||||
$snmp3_security_level = '';
|
||||
} else if ($id_agent_module === false) {
|
||||
// For a policy.
|
||||
if (isset($id_agent_module) === false || $id_agent_module === false) {
|
||||
$snmp3_auth_user = '';
|
||||
$snmp3_auth_pass = '';
|
||||
$snmp_version = 1;
|
||||
@ -274,6 +327,9 @@ if (!isset($id_agent_module)) {
|
||||
$snmp3_privacy_pass = '';
|
||||
$snmp3_auth_method = '';
|
||||
$snmp3_security_level = '';
|
||||
$command_text = '';
|
||||
$command_os = 'inherited';
|
||||
$command_credential_identifier = '';
|
||||
}
|
||||
|
||||
$data = [];
|
||||
@ -333,7 +389,22 @@ push_table_simple($data, 'field_snmpv3_row2');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Auth method');
|
||||
$data[1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy);
|
||||
$data[1] = html_print_select(
|
||||
[
|
||||
'MD5' => __('MD5'),
|
||||
'SHA' => __('SHA'),
|
||||
],
|
||||
'snmp3_auth_method',
|
||||
$snmp3_auth_method,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
$data[2] = __('Security level');
|
||||
$data[3] = html_print_select(
|
||||
[
|
||||
@ -358,13 +429,84 @@ if ($snmp_version != 3) {
|
||||
|
||||
push_table_simple($data, 'field_snmpv3_row3');
|
||||
|
||||
$data = [];
|
||||
$data[0] = __('Command');
|
||||
$data[1] = html_print_input_text_extended(
|
||||
'command_text',
|
||||
$command_text,
|
||||
'command_text',
|
||||
'',
|
||||
100,
|
||||
10000,
|
||||
$disabledBecauseInPolicy,
|
||||
'',
|
||||
$largeClassDisabledBecauseInPolicy,
|
||||
true
|
||||
);
|
||||
$table_simple->colspan['row-cmd-row-1'][1] = 3;
|
||||
push_table_simple($data, 'row-cmd-row-1');
|
||||
|
||||
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
|
||||
$array_credential_identifier = CredentialStore::getKeys();
|
||||
|
||||
$data[0] = __('Credential identifier');
|
||||
$data[1] = html_print_select(
|
||||
$array_credential_identifier,
|
||||
'command_credential_identifier',
|
||||
$command_credential_identifier,
|
||||
'',
|
||||
__('None'),
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
|
||||
$array_os = [
|
||||
'inherited' => __('Inherited'),
|
||||
'linux' => __('Linux'),
|
||||
'windows' => __('Windows'),
|
||||
];
|
||||
|
||||
$data[2] = __('Target OS');
|
||||
$data[3] = html_print_select(
|
||||
$array_os,
|
||||
'command_os',
|
||||
$command_os,
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
'',
|
||||
$disabledBecauseInPolicy
|
||||
);
|
||||
|
||||
push_table_simple($data, 'row-cmd-row-2');
|
||||
|
||||
if ($id_module_type !== 34
|
||||
&& $id_module_type !== 35
|
||||
&& $id_module_type !== 36
|
||||
&& $id_module_type !== 37
|
||||
) {
|
||||
$table_simple->rowstyle['row-cmd-row-1'] = 'display: none;';
|
||||
$table_simple->rowstyle['row-cmd-row-2'] = 'display: none;';
|
||||
}
|
||||
|
||||
snmp_browser_print_container(false, '100%', '60%', 'none');
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
$(document).ready (function () {
|
||||
$("#id_module_type").change(function (){
|
||||
if ((this.value == "17") || (this.value == "18") || (this.value == "16") || (this.value == "15")) {
|
||||
if ((this.value == "17") ||
|
||||
(this.value == "18") ||
|
||||
(this.value == "16") ||
|
||||
(this.value == "15")
|
||||
) {
|
||||
if ($("#snmp_version").val() == "3"){
|
||||
$("#simple-field_snmpv3_row1").attr("style", "");
|
||||
$("#simple-field_snmpv3_row2").attr("style", "");
|
||||
@ -379,6 +521,18 @@ $(document).ready (function () {
|
||||
$("input[name=active_snmp_v3]").val(0);
|
||||
$("input[name=snmp_community]").removeAttr('disabled');
|
||||
}
|
||||
|
||||
if((this.value == "34") ||
|
||||
(this.value == "35") ||
|
||||
(this.value == "36") ||
|
||||
(this.value == "37")
|
||||
) {
|
||||
$("#simple-row-cmd-row-1").attr("style", "");
|
||||
$("#simple-row-cmd-row-2").attr("style", "");
|
||||
} else {
|
||||
$("#simple-row-cmd-row-1").css("display", "none");
|
||||
$("#simple-row-cmd-row-2").css("display", "none");
|
||||
}
|
||||
});
|
||||
|
||||
$("#snmp_version").change(function () {
|
||||
@ -397,27 +551,28 @@ $(document).ready (function () {
|
||||
$("input[name=snmp_community]").removeAttr('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#select_snmp_oid").click (
|
||||
function () {
|
||||
$(this).css ("width", "auto");
|
||||
$(this).css ("min-width", "180px");
|
||||
});
|
||||
|
||||
|
||||
$("#select_snmp_oid").blur (function () {
|
||||
$(this).css ("width", "180px");
|
||||
});
|
||||
|
||||
|
||||
$("#id_module_type").click (
|
||||
function () {
|
||||
$(this).css ("width", "auto");
|
||||
$(this).css ("min-width", "180px");
|
||||
});
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
$("#id_module_type").blur (function () {
|
||||
$(this).css ("width", "180px");
|
||||
});
|
||||
|
||||
|
||||
// Keep elements in the form and the SNMP browser synced
|
||||
$('#text-ip_target').keyup(function() {
|
||||
$('#text-target_ip').val($(this).val());
|
||||
@ -433,13 +588,12 @@ $(document).ready (function () {
|
||||
});
|
||||
$('#snmp_version').change(function() {
|
||||
$('#snmp_browser_version').val($(this).val());
|
||||
|
||||
// Display or collapse the SNMP browser's v3 options
|
||||
checkSNMPVersion ();
|
||||
});
|
||||
$('#snmp_browser_version').change(function() {
|
||||
$('#snmp_version').val($(this).val());
|
||||
|
||||
|
||||
// Display or collapse the SNMP v3 options in the main window
|
||||
if ($(this).val() == "3") {
|
||||
$("#simple-field_snmpv3_row1").attr("style", "");
|
||||
@ -498,10 +652,10 @@ $(document).ready (function () {
|
||||
}
|
||||
$('#ip_target').change(function() {
|
||||
if($(this).val() == 'custom') {
|
||||
$("#text-custom_ip_target").show();
|
||||
$("#text-custom_ip_target").show();
|
||||
}
|
||||
else{
|
||||
$("#text-custom_ip_target").hide();
|
||||
$("#text-custom_ip_target").hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -403,6 +403,8 @@ class CredentialStore extends Wizard
|
||||
{
|
||||
global $config;
|
||||
|
||||
$filter = [];
|
||||
|
||||
if ($product !== false) {
|
||||
$filter['product'] = $product;
|
||||
}
|
||||
|
@ -1716,10 +1716,9 @@ if (!empty($result)) {
|
||||
}
|
||||
}
|
||||
|
||||
// End Build List Result
|
||||
//
|
||||
// End Build List Result.
|
||||
echo "<div id='monitor_details_window'></div>";
|
||||
// strict user hidden
|
||||
// Strict user hidden.
|
||||
echo '<div id="strict_hidden" style="display:none;">';
|
||||
html_print_input_text('strict_user_hidden', $strict_user);
|
||||
echo '</div>';
|
||||
@ -1756,8 +1755,8 @@ $('#moduletype').click(function() {
|
||||
);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$('#ag_group').change (function () {
|
||||
strict_user = $('#text-strict_user_hidden').val();
|
||||
|
||||
|
@ -268,7 +268,7 @@ INSERT INTO `torigen` VALUES
|
||||
--
|
||||
|
||||
-- Identifiers 30 and 31 are reserved for Enterprise data types
|
||||
INSERT INTO `ttipo_modulo` VALUES
|
||||
INSERT INTO `ttipo_modulo` VALUES
|
||||
(1,'generic_data',0,'Generic numeric','mod_data.png'),
|
||||
(2,'generic_proc',1,'Generic boolean','mod_proc.png'),
|
||||
(3,'generic_data_string',2,'Generic string','mod_string.png'),
|
||||
@ -283,15 +283,19 @@ INSERT INTO `ttipo_modulo` VALUES
|
||||
(15,'remote_snmp',3,'Remote SNMP network agent, numeric data','mod_snmp_data.png'),
|
||||
(16,'remote_snmp_inc',3,'Remote SNMP network agent, incremental data','mod_snmp_inc.png'),
|
||||
(17,'remote_snmp_string',5,'Remote SNMP network agent, alphanumeric data','mod_snmp_string.png'),
|
||||
(18,'remote_snmp_proc',4,'Remote SNMP network agent, boolean data','mod_snmp_proc.png'),
|
||||
(21,'async_proc', 7, 'Asyncronous proc data', 'mod_async_proc.png'),
|
||||
(22,'async_data', 6, 'Asyncronous numeric data', 'mod_async_data.png'),
|
||||
(18,'remote_snmp_proc',4,'Remote SNMP network agent, boolean data','mod_snmp_proc.png'),
|
||||
(21,'async_proc', 7, 'Asyncronous proc data', 'mod_async_proc.png'),
|
||||
(22,'async_data', 6, 'Asyncronous numeric data', 'mod_async_data.png'),
|
||||
(23,'async_string', 8, 'Asyncronous string data', 'mod_async_string.png'),
|
||||
(25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'),
|
||||
(30,'web_data',9,'Remote HTTP module to check latency','mod_web_data.png'),
|
||||
(31,'web_proc',9,'Remote HTTP module to check server response','mod_web_proc.png'),
|
||||
(32,'web_content_data',9,'Remote HTTP module to retrieve numeric data','mod_web_data.png'),
|
||||
(33,'web_content_string',9,'Remote HTTP module to retrieve string data','mod_web_data.png'),
|
||||
(34,'remote_cmd', 10, 'Remote CMD command, numeric data', 'mod_remote_cmd.png'),
|
||||
(35,'remote_cmd_proc', 10, 'Remote CMD command, boolean data', 'mod_remote_cmd_proc.png'),
|
||||
(36,'remote_cmd_string', 10, 'Remote CMD command, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||
(37,'remote_cmd_inc', 10, 'Remote CMD command, incremental data', 'mod_remote_cmd_inc.png'),
|
||||
(100,'keep_alive',-1,'KeepAlive','mod_keepalive.png');
|
||||
|
||||
--
|
||||
|
Loading…
x
Reference in New Issue
Block a user