Merge branch '539-encrypt-agent-custom-fields-in-pandora-console-dev' into 'develop'

539 encrypt agent custom fields in pandora console dev

See merge request !520
This commit is contained in:
vgilc 2017-06-14 11:42:51 +02:00
commit c78711ba6f
9 changed files with 51 additions and 10 deletions

View File

@ -0,0 +1,9 @@
START TRANSACTION;
ALTER TABLE tagent_custom_fields ADD is_password_type tinyint(1) NOT NULL DEFAULT 0;
ALTER TABLE treport_content ADD COLUMN historical_db tinyint(1) NOT NULL DEFAULT 0;
ALTER TABLE tpolicy_modules ADD COLUMN ip_target varchar(100) default '';
COMMIT;

View File

@ -1219,6 +1219,7 @@ ALTER TABLE tlayout_data ADD `label_position` varchar(50) NOT NULL default 'down
-- Table `tagent_custom_fields`
-- ---------------------------------------------------------------------
INSERT INTO `tagent_custom_fields` (`name`) VALUES ('eHorusID');
ALTER TABLE tagent_custom_fields ADD `is_password_type` tinyint(1) NOT NULL DEFAULT 0;
-- ---------------------------------------------------------------------
-- Table `tagente_modulo` Fixed problems with blank space

View File

@ -460,8 +460,14 @@ foreach ($fields as $field) {
$custom_value = '';
}
$data[1] = html_print_textarea ('customvalue_'.$field['id_field'],
2, 65, $custom_value, 'style="min-height: 30px; width:96%;"', true);
if ($field['is_password_type']) {
$data[1] = html_print_input_text_extended ('customvalue_' . $field['id_field'], $custom_value, 'customvalue_' . $field['id_field'], '',
30, 100, $view_mode, '', '', true, true);
}
else {
$data[1] = html_print_textarea ('customvalue_'.$field['id_field'],
2, 65, $custom_value, 'style="min-height: 30px; width:96%;"', true);
}
array_push ($table->data, $data);
}

View File

@ -27,12 +27,14 @@ if (! check_acl ($config['id_user'], 0, "PM")) {
$id_field = (int) get_parameter ('id_field', 0);
$name = (string) get_parameter ('name', '');
$display_on_front = (bool) get_parameter ('display_on_front', 0);
$is_password_type = (bool) get_parameter ('is_password_type', 0);
// Header
if ($id_field) {
$field = db_get_row_filter('tagent_custom_fields',array('id_field' => $id_field));
$name = $field['name'];
$display_on_front = $field['display_on_front'];
$is_password_type = $field['is_password_type'];
ui_print_page_header (__("Update agent custom field"), "images/custom_field.png", false, "", true, "");
}
else {
@ -48,8 +50,11 @@ $table->data = array ();
$table->data[0][0] = __('Name');
$table->data[0][1] = html_print_input_text ('name', $name, '', 35, 100, true);
$table->data[0][2] = __('Display on front').ui_print_help_tip (__('The fields with display on front enabled will be displayed into the agent details'), true);
$table->data[0][3] = html_print_checkbox ('display_on_front', 1, $display_on_front, true);
$table->data[0][2] = __('Pass type').ui_print_help_tip (__('The fields with pass type enabled will be displayed like html input type pass in html'), true);
$table->data[0][3] = html_print_checkbox ('is_password_type', 1, $is_password_type, true);
$table->data[0][4] = __('Display on front').ui_print_help_tip (__('The fields with display on front enabled will be displayed into the agent details'), true);
$table->data[0][5] = html_print_checkbox ('display_on_front', 1, $display_on_front, true);
echo '<form name="field" method="post" action="index.php?sec=gagente&sec2=godmode/agentes/fields_manager">';
html_print_table ($table);

View File

@ -36,6 +36,7 @@ $delete_field = (bool) get_parameter ('delete_field');
$id_field = (int) get_parameter ('id_field', 0);
$name = (string) get_parameter ('name', '');
$display_on_front = (int) get_parameter ('display_on_front', 0);
$is_password_type = (int) get_parameter ('is_password_type', 0);
/* Create field */
if ($create_field) {
@ -48,7 +49,8 @@ if ($create_field) {
}
else {
$result = db_process_sql_insert('tagent_custom_fields',
array('name' => $name, 'display_on_front' => $display_on_front));
array('name' => $name, 'display_on_front' => $display_on_front,
'is_password_type' => $is_password_type));
ui_print_success_message(__('Field successfully created'));
}
}
@ -57,7 +59,7 @@ if ($create_field) {
if ($update_field) {
/*Check if name field is empty*/
if ( $name != "") {
$values = array('name' => $name, 'display_on_front' => $display_on_front);
$values = array('name' => $name, 'display_on_front' => $display_on_front, 'is_password_type' => $is_password_type);
$result = db_process_sql_update('tagent_custom_fields', $values, array('id_field' => $id_field));
}

View File

@ -456,7 +456,13 @@ foreach ($fields as $field) {
$custom_value = '';
}
$data[1] = html_print_textarea ('customvalue_'.$field['id_field'], 2, 65, $custom_value, 'style="min-height: 30px;"', true);
if ($field['is_password_type']) {
$data[1] = html_print_input_text_extended ('customvalue_' . $field['id_field'], $custom_value, 'customvalue_' . $field['id_field'], '',
30, 100, $view_mode, '', '', true, true);
}
else {
$data[1] = html_print_textarea ('customvalue_'.$field['id_field'], 2, 65, $custom_value, 'style="min-height: 30px;"', true);
}
array_push ($table->data, $data);
}

View File

@ -1382,9 +1382,20 @@ function api_set_create_custom_field($t1, $t2, $other, $returnType) {
returnError('error_parameter', 'Custom field display flag required');
return;
}
$is_password_type = 0;
if ($other['data'][2] != '') {
$is_password_type = $other['data'][2];
}
else {
returnError('error_parameter', 'Custom field is password type required');
return;
}
$result = db_process_sql_insert('tagent_custom_fields',
array('name' => $name, 'display_on_front' => $display_front));
array('name' => $name, 'display_on_front' => $display_front,
'is_password_type' => $is_password_type));
$data['type'] = "string";
$data["data"] = $result;

View File

@ -1703,6 +1703,7 @@ CREATE TABLE IF NOT EXISTS `tagent_custom_fields` (
`id_field` int(10) unsigned NOT NULL auto_increment,
`name` varchar(45) NOT NULL default '',
`display_on_front` tinyint(1) NOT NULL default 0,
`is_password_type` tinyint(1) NOT NULL default 0,
PRIMARY KEY (`id_field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -109,7 +109,7 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
('custom_report_front_header', ''),
('custom_report_front_footer', ''),
('MR', 1),
('MR', 2),
('identification_reminder', 1),
('identification_reminder_timestamp', 0),
('current_package_enterprise', '705'),
@ -1144,7 +1144,7 @@ INSERT INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `execute`, `p
INSERT INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (9,'Packet&#x20;Loss','Checks&#x20;for&#x20;dropped&#x20;packages&#x20;after&#x20;X&#x20;seconds&#x20;of&#x20;testing.&#x20;It&#x20;returns&#x20;%&#x20;of&#x20;dropped&#x20;packets.&#x20;It&#x20;uses&#x20;ping&#x20;flood&#x20;mode&#x20;to&#x20;launch&#x20;50&#x20;consecutive&#x20;pings&#x20;to&#x20;a&#x20;remote&#x20;destination.&#x20;On&#x20;local,&#x20;stable&#x20;networks,&#x20;value&#x20;should&#x20;be&#x20;0.&#x0d;&#x0a;',30,0,'/usr/share/pandora_server/util/plugin/packet_loss.sh','','','','',0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Test&#x20;time\",\"help\":\"\",\"value\":\"8\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Target&#x20;IP\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"}}','_field1_&#x20;_field2_');
INSERT INTO `tagent_custom_fields` VALUES (1,'Serial&#x20;Number',0),(2,'Department',0),(3,'Additional&#x20;ID',0),(4,'eHorusID',0);
INSERT INTO `tagent_custom_fields` VALUES (1,'Serial&#x20;Number',0,0),(2,'Department',0,0),(3,'Additional&#x20;ID',0,0),(4,'eHorusID',0,0);
INSERT INTO `ttag` VALUES (1,'network','Network&#x20;equipment','http://artica.es','',''),(2,'critical','Critical&#x20;modules','','',''),(3,'dmz','DMZ&#x20;Network&#x20;Zone','','',''),(4,'performance','Performance&#x20;anda&#x20;capacity&#x20;modules','','',''),(5,'configuration','','','','');