Added cascade protection by module (agent, massive and api). Ticket #187
This commit is contained in:
parent
1970167df4
commit
3c8bc86ab7
|
@ -114,6 +114,7 @@ ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsign
|
|||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tagente ADD `transactional_agent` tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD `remote` tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD `cascade_protection_module` int(10) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tlayout`
|
||||
|
|
|
@ -92,6 +92,7 @@ ALTER TABLE tnetwork_component ADD COLUMN dynamic_two_tailed tinyint(1) unsigned
|
|||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tagente ADD transactional_agent tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD remoteto tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD cascade_protection_module int(10) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tlayout`
|
||||
|
|
|
@ -28,6 +28,7 @@ ALTER TABLE tnetwork_component ADD COLUMN dynamic_two_tailed tinyint(1) unsigned
|
|||
-- ---------------------------------------------------------------------
|
||||
ALTER TABLE tagente ADD transactional_agent tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD remote tinyint(1) NOT NULL default 0;
|
||||
ALTER TABLE tagente ADD cascade_protection_module int(10) unsigned default '0';
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `tlayout`
|
||||
|
|
|
@ -230,6 +230,15 @@ else {
|
|||
$groups = users_get_groups ($config["id_user"], "AR",false);
|
||||
$agents = agents_get_group_agents (array_keys ($groups));
|
||||
|
||||
$modules = db_get_all_rows_sql("SELECT id_agente_modulo as id_module, nombre as name FROM tagente_modulo
|
||||
WHERE id_agente = " . $id_parent);
|
||||
|
||||
$modules_values = array();
|
||||
$modules_values[0] = __('Any');
|
||||
foreach ($modules as $m) {
|
||||
$modules_values[$m['id_module']] = $m['name'];
|
||||
}
|
||||
|
||||
$table->data[2][0] = __('Parent');
|
||||
$params = array();
|
||||
$params['return'] = true;
|
||||
|
@ -240,6 +249,8 @@ $table->data[2][1] = ui_print_agent_autocomplete_input($params);
|
|||
|
||||
$table->data[2][1] .= html_print_checkbox ("cascade_protection", 1, $cascade_protection, true).__('Cascade protection'). " " . ui_print_help_icon("cascade_protection", true);
|
||||
|
||||
$table->data[2][1] .= " " . __('Module') . " " . html_print_select ($modules_values, "cascade_protection_module", $cascade_protection_module, "", "", 0, true);
|
||||
|
||||
$table->data[3][0] = __('Group');
|
||||
$table->data[3][1] = html_print_select_groups(false, "AR", false, 'grupo', $grupo, '', '', 0, true);
|
||||
$table->data[3][1] .= ' <span id="group_preview">';
|
||||
|
@ -525,6 +536,57 @@ ui_require_jquery_file('bgiframe');
|
|||
|
||||
$(document).ready (function() {
|
||||
$("select#id_os").pandoraSelectOS ();
|
||||
|
||||
var checked = $("#checkbox-cascade_protection").is(":checked");
|
||||
if (checked) {
|
||||
$("#cascade_protection_module").removeAttr("disabled");
|
||||
}
|
||||
else {
|
||||
$("#cascade_protection_module").attr("disabled", 'disabled');
|
||||
}
|
||||
|
||||
$("#checkbox-cascade_protection").change(function () {
|
||||
var checked = $("#checkbox-cascade_protection").is(":checked");
|
||||
|
||||
if (checked) {
|
||||
$("#cascade_protection_module").removeAttr("disabled");
|
||||
}
|
||||
else {
|
||||
$("#cascade_protection_module").val(0);
|
||||
$("#cascade_protection_module").attr("disabled", 'disabled');
|
||||
}
|
||||
});
|
||||
|
||||
$("#text-id_parent").on("autocompletechange", function () {
|
||||
agent_name = $("#text-id_parent").val();
|
||||
|
||||
var params = {};
|
||||
params["get_agent_modules_json_by_name"] = 1;
|
||||
params["agent_name"] = agent_name;
|
||||
params["page"] = "include/ajax/module";
|
||||
|
||||
jQuery.ajax ({
|
||||
data: params,
|
||||
dataType: "json",
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
success: function (data) {
|
||||
$('#cascade_protection_module').empty();
|
||||
$('#cascade_protection_module')
|
||||
.append ($('<option></option>')
|
||||
.html("Any")
|
||||
.prop("value", 0)
|
||||
.prop("selected", 'selected'));
|
||||
jQuery.each (data, function (i, val) {
|
||||
$('#cascade_protection_module')
|
||||
.append ($('<option></option>')
|
||||
.html(val['name'])
|
||||
.prop("value", val['id_module'])
|
||||
.prop("selected", 'selected'));
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
paint_qrcode(
|
||||
"<?php
|
||||
|
|
|
@ -132,6 +132,7 @@ $grupo = 0;
|
|||
$id_os = 9; // Windows
|
||||
$custom_id = "";
|
||||
$cascade_protection = 0;
|
||||
$cascade_protection_modules = 0;
|
||||
$icon_path = '';
|
||||
$update_gis_data = 0;
|
||||
$unit = "";
|
||||
|
@ -161,6 +162,7 @@ if ($create_agent) {
|
|||
$disabled = (int) get_parameter_post ("disabled");
|
||||
$custom_id = (string) get_parameter_post ("custom_id",'');
|
||||
$cascade_protection = (int) get_parameter_post ("cascade_protection", 0);
|
||||
$cascade_protection_module = (int) get_parameter_post("cascade_protection_module", 0);
|
||||
$icon_path = (string) get_parameter_post ("icon_path",'');
|
||||
$update_gis_data = (int) get_parameter_post("update_gis_data", 0);
|
||||
$url_description = (string) get_parameter("url_description");
|
||||
|
@ -197,6 +199,7 @@ if ($create_agent) {
|
|||
'id_os' => $id_os,
|
||||
'disabled' => $disabled,
|
||||
'cascade_protection' => $cascade_protection,
|
||||
'cascade_protection_module' => $cascade_protection_module,
|
||||
'server_name' => $server_name,
|
||||
'id_parent' => $id_parent,
|
||||
'custom_id' => $custom_id,
|
||||
|
@ -230,7 +233,8 @@ if ($create_agent) {
|
|||
' ID os: ' . $id_os .
|
||||
' Disabled: ' . $disabled .
|
||||
' Custom ID: ' . $custom_id .
|
||||
' Cascade protection: ' . $cascade_protection .
|
||||
' Cascade protection: ' . $cascade_protection .
|
||||
' Cascade protection module: ' . $cascade_protection_module .
|
||||
' Icon path: ' . $icon_path .
|
||||
' Update GIS data: ' . $update_gis_data .
|
||||
' Url description: ' . $url_description .
|
||||
|
@ -666,6 +670,7 @@ if ($update_agent) { // if modified some agent paramenter
|
|||
$id_parent = (int) agents_get_agent_id ($parent_name);
|
||||
$custom_id = (string) get_parameter_post ("custom_id", "");
|
||||
$cascade_protection = (int) get_parameter_post ("cascade_protection", 0);
|
||||
$cascade_protection_module = (int) get_parameter ("cascade_protection_module", 0);
|
||||
$icon_path = (string) get_parameter_post ("icon_path",'');
|
||||
$update_gis_data = (int) get_parameter_post("update_gis_data", 0);
|
||||
$url_description = (string) get_parameter("url_description");
|
||||
|
@ -733,6 +738,7 @@ if ($update_agent) { // if modified some agent paramenter
|
|||
'intervalo' => $intervalo,
|
||||
'comentarios' => $comentarios,
|
||||
'cascade_protection' => $cascade_protection,
|
||||
'cascade_protection_module' => $cascade_protection_module,
|
||||
'server_name' => $server_name,
|
||||
'custom_id' => $custom_id,
|
||||
'icon_path' => $icon_path,
|
||||
|
@ -764,6 +770,7 @@ if ($update_agent) { // if modified some agent paramenter
|
|||
' ID OS: ' . $id_os . ' Disabled: ' . $disabled .
|
||||
' Server Name: ' . $server_name . ' ID parent: ' . $id_parent .
|
||||
' Custom ID: ' . $custom_id . ' Cascade Protection: ' . $cascade_protection .
|
||||
' Cascade protection module: ' . $cascade_protection_module .
|
||||
' Icon Path: ' . $icon_path . 'Update GIS data: ' .$update_gis_data .
|
||||
' Url description: ' . $url_description .
|
||||
' Quiet: ' . (int)$quiet;
|
||||
|
@ -808,6 +815,7 @@ if ($id_agente) {
|
|||
$id_parent = $agent["id_parent"];
|
||||
$custom_id = $agent["custom_id"];
|
||||
$cascade_protection = $agent["cascade_protection"];
|
||||
$cascade_protection_module = $agent["cascade_protection_module"];
|
||||
$icon_path = $agent["icon_path"];
|
||||
$update_gis_data = $agent["update_gis_data"];
|
||||
$url_description = $agent["url_address"];
|
||||
|
|
|
@ -76,6 +76,8 @@ if ($update_agents) {
|
|||
$values['custom_id'] = get_parameter('custom_id');
|
||||
if (get_parameter ('cascade_protection', -1) != -1)
|
||||
$values['cascade_protection'] = get_parameter('cascade_protection');
|
||||
if (get_parameter ('cascade_protection_module', -1) != -1)
|
||||
$values['cascade_protection_module'] = get_parameter('cascade_protection_module');
|
||||
if (get_parameter ('delete_conf', 0) != 0)
|
||||
$values['delete_conf'] = get_parameter('delete_conf');
|
||||
if (get_parameter('quiet_select', -1) != -1)
|
||||
|
@ -264,6 +266,15 @@ $table->data = array ();
|
|||
$groups = users_get_groups ($config["id_user"], "AW",false);
|
||||
$agents = agents_get_group_agents (array_keys ($groups));
|
||||
|
||||
$modules = db_get_all_rows_sql("SELECT id_agente_modulo as id_module, nombre as name FROM tagente_modulo
|
||||
WHERE id_agente = " . $id_parent);
|
||||
|
||||
$modules_values = array();
|
||||
$modules_values[0] = __('Any');
|
||||
foreach ($modules as $m) {
|
||||
$modules_values[$m['id_module']] = $m['name'];
|
||||
}
|
||||
|
||||
$table->data[0][0] = __('Parent');
|
||||
$params = array();
|
||||
$params['return'] = true;
|
||||
|
@ -277,6 +288,8 @@ $table->data[0][1] .= "<b>" . __('Cascade protection'). "</b> " .
|
|||
html_print_select(array(1 => __('Yes'), 0 => __('No')),
|
||||
"cascade_protection", -1, "", __('No change'), -1, true);
|
||||
|
||||
$table->data[0][1] .= " " . __('Module') . " " . html_print_select ($modules, "cascade_protection_module", $cascade_protection_module, "", "", 0, true);
|
||||
|
||||
$table->data[1][0] = __('Group');
|
||||
$table->data[1][1] = html_print_select_groups(false, "AR", false, 'group', $group, '', __('No change'), -1, true, false, true, '', false, 'width: 150px;');
|
||||
|
||||
|
@ -313,6 +326,7 @@ $new_agent = true;
|
|||
$icon_path = '';
|
||||
$update_gis_data = -1;
|
||||
$cascade_protection = -1;
|
||||
$cascade_protection_module = -1;
|
||||
$quiet_select = -1;
|
||||
|
||||
$table = new StdClass();
|
||||
|
@ -474,7 +488,54 @@ var limit_parameters_massive = <?php echo $config['limit_parameters_massive']; ?
|
|||
|
||||
//Use this function for change 3 icons when change the selectbox
|
||||
$(document).ready (function () {
|
||||
var checked = $("#cascade_protection").val();
|
||||
|
||||
$("#cascade_protection_module").attr("disabled", 'disabled');
|
||||
|
||||
$("#cascade_protection").change(function () {
|
||||
var checked = $("#cascade_protection").val();
|
||||
|
||||
if (checked == 1) {
|
||||
$("#cascade_protection_module").removeAttr("disabled");
|
||||
}
|
||||
else {
|
||||
$("#cascade_protection_module").val(0);
|
||||
$("#cascade_protection_module").attr("disabled", 'disabled');
|
||||
}
|
||||
});
|
||||
|
||||
$("#text-id_parent").on("autocompletechange", function () {
|
||||
agent_name = $("#text-id_parent").val();
|
||||
|
||||
var params = {};
|
||||
params["get_agent_modules_json_by_name"] = 1;
|
||||
params["agent_name"] = agent_name;
|
||||
params["page"] = "include/ajax/module";
|
||||
|
||||
jQuery.ajax ({
|
||||
data: params,
|
||||
dataType: "json",
|
||||
type: "POST",
|
||||
url: "ajax.php",
|
||||
success: function (data) {
|
||||
$('#cascade_protection_module').empty();
|
||||
$('#cascade_protection_module')
|
||||
.append ($('<option></option>')
|
||||
.html("Any")
|
||||
.prop("value", 0)
|
||||
.prop("selected", 'selected'));
|
||||
jQuery.each (data, function (i, val) {
|
||||
$('#cascade_protection_module')
|
||||
.append ($('<option></option>')
|
||||
.html(val['name'])
|
||||
.prop("value", val['id_module'])
|
||||
.prop("selected", 'selected'));
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$("#form_agent").submit(function() {
|
||||
var get_parameters_count = window.location.href.slice(
|
||||
window.location.href.indexOf('?') + 1).split('&').length;
|
||||
|
|
|
@ -34,8 +34,22 @@ $change_module_relation_updates = (bool) get_parameter('change_module_relation_u
|
|||
$get_id_tag = (bool) get_parameter('get_id_tag', 0);
|
||||
$get_type = (bool) get_parameter('get_type', 0);
|
||||
$list_modules = (bool) get_parameter('list_modules', 0);
|
||||
$get_agent_modules_json_by_name = (bool) get_parameter('get_agent_modules_json_by_name', 0);
|
||||
|
||||
|
||||
if ($get_agent_modules_json_by_name) {
|
||||
$agent_name = get_parameter('agent_name');
|
||||
|
||||
$agent_id = agents_get_agent_id($agent_name);
|
||||
|
||||
$agent_modules = db_get_all_rows_sql("SELECT id_agente_modulo as id_module, nombre as name FROM tagente_modulo
|
||||
WHERE id_agente = " . $agent_id);
|
||||
|
||||
echo json_encode ($agent_modules);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($get_plugin_macros) {
|
||||
if ( https_is_running() ) {
|
||||
header('Content-type: application/json');
|
||||
|
|
|
@ -396,7 +396,8 @@ $agent_field_column_mapping = array(
|
|||
'agent_id_parent' => 'id_parent as agent_id_parent',
|
||||
'agent_custom_id' => 'custom_id as agent_custom_id',
|
||||
'agent_server_name' => 'server_name as agent_server_name',
|
||||
'agent_cascade_protection' => 'cascade_protection as agent_cascade_protection');
|
||||
'agent_cascade_protection' => 'cascade_protection as agent_cascade_protection',
|
||||
'agent_cascade_protection_module' => 'cascade_protection_module as agent_cascade_protection_module',);
|
||||
|
||||
/* module related field mappings 1/2 (output field => column for 'tagente_modulo') */
|
||||
$module_field_column_mampping = array(
|
||||
|
@ -540,6 +541,7 @@ function api_get_tree_agents($trash1, $trahs2, $other, $returnType) {
|
|||
'agent_custom_id',
|
||||
'agent_server_name',
|
||||
'agent_cascade_protection',
|
||||
'agent_cascade_protection_module',
|
||||
|
||||
'module_id_agent_modulo',
|
||||
'module_id_agent',
|
||||
|
@ -1060,20 +1062,32 @@ function api_set_update_agent($id_agent, $thrash2, $other, $thrash3) {
|
|||
return;
|
||||
}
|
||||
|
||||
//html_debug_print($other);
|
||||
$name = $other['data'][0];
|
||||
$ip = $other['data'][1];
|
||||
$idParent = $other['data'][2];
|
||||
$idGroup = $other['data'][3];
|
||||
$cascadeProtection = $other['data'][4];
|
||||
$intervalSeconds = $other['data'][5];
|
||||
$idOS = $other['data'][6];
|
||||
$nameServer = $other['data'][7];
|
||||
$customId = $other['data'][8];
|
||||
$learningMode = $other['data'][9];
|
||||
$disabled = $other['data'][10];
|
||||
$description = $other['data'][11];
|
||||
$cascadeProtectionModule = $other['data'][5];
|
||||
$intervalSeconds = $other['data'][6];
|
||||
$idOS = $other['data'][7];
|
||||
$nameServer = $other['data'][8];
|
||||
$customId = $other['data'][9];
|
||||
$learningMode = $other['data'][10];
|
||||
$disabled = $other['data'][11];
|
||||
$description = $other['data'][12];
|
||||
|
||||
if ($cascadeProtection == 1) {
|
||||
if (($idParent != 0) && (db_get_value_sql('SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE id_agente = ' . $idParent .
|
||||
' AND id_agente_modulo = ' . $cascadeProtectionModule) === false)) {
|
||||
returnError('parent_agent_not_exist', 'Is not a parent module to do cascade protection.');
|
||||
}
|
||||
}
|
||||
else {
|
||||
$cascadeProtectionModule = 0;
|
||||
}
|
||||
|
||||
$return = db_process_sql_update('tagente',
|
||||
array('nombre' => $name,
|
||||
'direccion' => $ip,
|
||||
|
@ -1084,6 +1098,7 @@ function api_set_update_agent($id_agent, $thrash2, $other, $thrash3) {
|
|||
'id_os' => $idOS,
|
||||
'disabled' => $disabled,
|
||||
'cascade_protection' => $cascadeProtection,
|
||||
'cascade_protection_module' => $cascadeProtectionModule,
|
||||
'server_name' => $nameServer,
|
||||
'id_parent' => $idParent,
|
||||
'custom_id' => $customId),
|
||||
|
@ -1124,14 +1139,27 @@ function api_set_new_agent($thrash1, $thrash2, $other, $thrash3) {
|
|||
$idParent = $other['data'][2];
|
||||
$idGroup = $other['data'][3];
|
||||
$cascadeProtection = $other['data'][4];
|
||||
$intervalSeconds = $other['data'][5];
|
||||
$idOS = $other['data'][6];
|
||||
$cascadeProtectionModule = $other['data'][5];
|
||||
$intervalSeconds = $other['data'][6];
|
||||
$idOS = $other['data'][7];
|
||||
//$idServer = $other['data'][7];
|
||||
$nameServer = $other['data'][7];
|
||||
$customId = $other['data'][8];
|
||||
$learningMode = $other['data'][9];
|
||||
$disabled = $other['data'][10];
|
||||
$description = $other['data'][11];
|
||||
$nameServer = $other['data'][8];
|
||||
$customId = $other['data'][9];
|
||||
$learningMode = $other['data'][10];
|
||||
$disabled = $other['data'][11];
|
||||
$description = $other['data'][12];
|
||||
|
||||
if ($cascadeProtection == 1) {
|
||||
if (($idParent != 0) && (db_get_value_sql('SELECT id_agente_modulo
|
||||
FROM tagente_modulo
|
||||
WHERE id_agente = ' . $idParent .
|
||||
' AND id_agente_modulo = ' . $cascadeProtectionModule) === false)) {
|
||||
returnError('parent_agent_not_exist', 'Is not a parent module to do cascade protection.');
|
||||
}
|
||||
}
|
||||
else {
|
||||
$cascadeProtectionModule = 0;
|
||||
}
|
||||
|
||||
switch ($config["dbtype"]) {
|
||||
case "mysql":
|
||||
|
@ -1183,10 +1211,11 @@ function api_set_new_agent($thrash1, $thrash2, $other, $thrash3) {
|
|||
'id_os' => $idOS,
|
||||
'disabled' => $disabled,
|
||||
'cascade_protection' => $cascadeProtection,
|
||||
'cascade_protection_module' => $cascadeProtectionModule,
|
||||
'server_name' => $nameServer,
|
||||
'id_parent' => $idParent,
|
||||
'custom_id' => $customId));
|
||||
|
||||
|
||||
if (!empty($idAgente) && !empty($ip)) {
|
||||
// register ip for this agent in 'taddress'
|
||||
agents_add_address ($idAgente, $ip);
|
||||
|
|
Loading…
Reference in New Issue