width = '100%'; $table->id = 'add_alert_table'; $table->class = 'databox filters integria_incidents_options'; $table->head = []; $table->data = []; $table->size = []; $table->size = []; $table->style[0] = 'width: 33%; padding-right: 50px; padding-left: 100px;'; $table->style[1] = 'width: 33%; padding-right: 50px; padding-left: 50px;'; $table->style[2] = 'width: 33%; padding-right: 100px; padding-left: 50px;'; $table->colspan[0][0] = 2; $table->colspan[3][0] = 3; $table->data[0][0] = '

'.__('Title').': '.ui_print_help_icon('response_macros', true).'

'; $table->data[0][0] .= '
'.html_print_input_text( 'incident_title', $update ? $incident_details[3] : $config['incident_title'], __('Name'), 50, 100, true, false, true ).'
'; $table->data[1][0] = '

'.__('Type').':

'; $table->data[1][0] .= '
'.html_print_select( $integria_types_values, 'type', $update ? $incident_details[17] : $config['incident_type'], '', __('Select'), 0, true, false, true, '', false, 'width: 100%;' ).'
'; $table->data[2][0] = '

'.__('Status').':

'; $table->data[2][0] .= '
'.html_print_select( $integria_status_values, 'status', $update ? $incident_details[6] : $config['incident_status'], '', __('Select'), 0, true, false, true, '', false, 'width: 100%;' ).'
'; $table->data[1][1] = '

'.__('Group').':

'; $table->data[1][1] .= '
'.html_print_select( $integria_group_values, 'group', $update ? $incident_details[8] : $config['default_group'], '', __('Select'), 0, true, false, true, '', false, 'width: 100%;' ).'
'; $table->data[2][1] = '

'.__('Creator').':

'; $table->data[2][1] .= '
'.html_print_autocomplete_users_from_integria( 'creator', $update ? $incident_details[10] : $config['default_creator'], true ).'
'; $table->data[1][2] = '

'.__('Criticity').':

'; $table->data[1][2] .= '
'.html_print_select( $integria_criticity_values, 'criticity', $update ? $incident_details[7] : $config['default_criticity'], '', __('Select'), 0, true, false, true, '', false, 'width: 100%;' ).'
'; $table->data[2][2] = '

'.__('Owner').':

'; $table->data[2][2] .= '
'.html_print_autocomplete_users_from_integria( 'owner', $update ? $incident_details[10] : $config['default_owner'], true ).'
'; $table->data[3][0] = '

'.__('Description').': '.ui_print_help_icon('response_macros', true).'

'; $table->data[3][0] .= '
'.html_print_textarea( 'incident_content', 3, 20, $update ? $incident_details[4] : $config['incident_content'], '', true ).'
'; // Here starts incident file management. $upload_file = get_parameter('upload_file'); $delete_file_id = get_parameter('delete_file'); // Files section table. $table_files_section = new stdClass(); $table_files_section->width = '100%'; $table_files_section->id = 'files_section_table'; $table_files_section->class = 'databox filters'; $table_files_section->head = []; $table_files_section->data = []; $table_files_section->size = []; $table_files_section->colspan[2][0] = 3; // Files list table. $table_files = new stdClass(); $table_files->width = '100%'; $table_files->class = 'info_table'; $table_files->head = []; $table_files->head[0] = __('Filename'); $table_files->head[1] = __('Timestamp'); $table_files->head[2] = __('Description'); $table_files->head[3] = __('User'); $table_files->head[4] = __('Size'); $table_files->head[5] = __('Delete'); $table_files->data = []; // Upload file. if (check_acl($config['id_user'], 0, 'IW') && $upload_file && ($_FILES['userfile']['name'] != '')) { $filedescription = get_parameter('file_description', __('No description available')); $filename = io_safe_input($_FILES['userfile']['name']); $filesize = io_safe_input($_FILES['userfile']['size']); $extension = pathinfo($filename, PATHINFO_EXTENSION); $invalid_extensions = '/^(bat|exe|cmd|sh|php|php1|php2|php3|php4|php5|pl|cgi|386|dll|com|torrent|js|app|jar|iso| pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess| htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i'; if (!preg_match($invalid_extensions, $extension)) { // The following is if you have clamavlib installed. // (php5-clamavlib) and enabled in php.ini // http://www.howtoforge.com/scan_viruses_with_php_clamavlib if (extension_loaded('clamav')) { cl_setlimits(5, 1000, 200, 0, 10485760); $malware = cl_scanfile($_FILES['file']['tmp_name']); if ($malware) { $error = 'Malware detected: '.$malware.'
ClamAV version: '.clam_get_version(); die($error); // On malware, we die because it's not good to handle it } } $filecontent = base64_encode(file_get_contents($_FILES['userfile']['tmp_name'])); $result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'attach_file', [$incident_id_edit, $filename, $filesize, $filedescription, $filecontent]); // API method returns '0' string if success. $file_added = ($result_api_call === '0') ? true : false; ui_print_result_message( $file_added, __('File successfully added'), __('File could not be added') ); } } // Delete file. if (isset($_GET['delete_file']) && check_acl($config['id_user'], 0, 'IW')) { $result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'delete_file', [$delete_file_id]); header('Location: index.php?sec=incident&sec2=operation/incidents/configure_integriaims_incident&incident_id='.$incident_id_edit); } // Retrieve files belonging to incident and create list table. $result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_files', [$incident_id_edit]); if ($result_api_call != false && strlen($result_api_call) > 0) { $files = []; $csv_array = explode("\n", $result_api_call); foreach ($csv_array as $csv_line) { if (!empty($csv_line)) { $files[] = explode(',', $csv_line); } } } $i = 0; foreach ($files as $key => $value) { $table_files->data[$i][0] = $value[11]; $table_files->data[$i][1] = $value[14]; $table_files->data[$i][2] = $value[12]; $table_files->data[$i][3] = $value[8]; $table_files->data[$i][4] = $value[13]; if (check_acl($config['id_user'], 0, 'IW')) { $table_files->data[$i][5] .= ''; $table_files->data[$i][5] .= html_print_image('images/cross.png', true, ['title' => __('Delete')]); $table_files->data[$i][5] .= ''; } $i++; } // header("Content-type: text/plain"); // header("Content-Disposition: attachment; filename=savethis.txt"); // do your Db stuff here to get the content into $content // echo "This is some text...\n"; // print $content; $table_files_section->data[0][0] = '

'.__('File name').':

'; $table_files_section->data[0][0] .= html_print_input_file('userfile', true); $table_files_section->data[1][0] = '

'.__('Description').':

'; $table_files_section->data[1][0] .= html_print_input_text( 'file_description', '', __('Description'), 50, 100, true, false ); $table_files_section->data[2][0] .= '
'.html_print_submit_button(__('Upload'), 'accion', false, 'class="sub wand"', true).'
'; $upload_file_form = '

'.__('Add attachment').'

'.html_print_table($table_files_section, true).html_print_input_hidden('upload_file', 1, true).'

'.__('Attached files').'

'.html_print_table($table_files, true).'
'; // Here starts incident comments management. // Comments section table. $table_comments_section = new stdClass(); $table_comments_section->width = '100%'; $table_comments_section->id = 'files_section_table'; $table_comments_section->class = 'databox filters'; $table_comments_section->head = []; $table_comments_section->data = []; $table_comments_section->size = []; // Comments list table. $table_comments = new stdClass(); $table_comments->width = '100%'; $table_comments->class = 'info_table'; $table_comments->head = []; $table_comments->head[0] = __('Filename'); $table_comments->head[1] = __('Timestamp'); $table_comments->head[2] = __('Description'); $table_comments->head[3] = __('User'); $table_comments->head[4] = __('Size'); $table_comments->head[5] = __('Delete'); $table_comments->data = []; $table_comments_section->data[0][0] = '

'.__('Description').':

'; $table_comments_section->data[0][0] .= html_print_input_text( 'file_description', '', __('Description'), 50, 100, true, false ); $i = 0; // Retrieve comments belonging to incident and create comments table. $result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_workunits', [$incident_id_edit]); if ($result_api_call != false && strlen($result_api_call) > 0) { $comments = []; $csv_array = explode("\n", $result_api_call); foreach ($csv_array as $csv_line) { if (!empty($csv_line)) { $comments[] = explode(',', $csv_line); } } } foreach ($comments as $key => $value) { $table_comments->data[$i][0] = $value[11]; $table_comments->data[$i][1] = $value[14]; $table_comments->data[$i][2] = $value[12]; $table_comments->data[$i][3] = $value[8]; $table_comments->data[$i][4] = $value[13]; $i++; } /* $upload_file_form = '

'.__('Add comment').'

' .html_print_table($table_comments_section, true) .html_print_input_hidden('upload_file', 1, true) .'
' .'

'.__('Comments').'

' .html_print_table($table_comments, true) .'
';*/ // // Print forms and stuff. echo '
'; html_print_table($table); if (!$update) { html_print_input_hidden('create_incident', 1); } else { html_print_input_hidden('update_incident', 1); } echo '
'; echo '
'; ui_toggle( $upload_file_form, __('Attached files'), '', '', true, false, 'white_box white_box_opened', 'no-border flex' ); echo '
'; echo '
'; html_print_submit_button(__('Create'), 'accion', false, 'form="create_integria_incident_form" class="sub wand"'); echo '
';