{%- if item.structured_data -%}
{%- import '_macros.common.txt.j2' as macros_common -%}
{%- macro render_number_info(event_class, data, field_type, field_name, display_name, render_if_zero=True) -%}
{%- if field_type in ["Source", "Target"] -%}
{%- set value = data[field_type][field_name] -%}
{%- else -%}
{%- set value = data[field_name] -%}
{%- endif -%}
{%- if (value and (value is not none and render_if_zero == True))
and event_class.should_be_displayed(field_type, field_name)
-%}
{{ _(display_name) }}:
{{ value }}
{%- endif -%}
{% endmacro %}
{%- macro render_list_info(event_class, data, field_type, field_name, display_name) -%}
{%- if field_type == "Main" and field_name == "protocols" -%}
{%- set values = (data["Target"]["Proto"] + data["Source"]["Proto"]) | unique -%}
{%- elif field_type in ["Source", "Target"] -%}
{%- set values = data[field_type][field_name] -%}
{%- else -%}
{%- set values = data[field_name] -%}
{%- endif -%}
{%- if values and event_class.should_be_displayed(field_type, field_name) -%}
{%- endif -%}
{% endmacro %}
{%- macro render_references_info(event_class, data, field_type, field_name, display_name) -%}
{%- if field_type in ["Source", "Target"] -%}
{%- set values = data[field_type][field_name] -%}
{%- else -%}
{%- set values = data[field_name] -%}
{%- endif -%}
{%- if values and event_class.should_be_displayed(field_type, field_name) -%}
{{ _(display_name) }}:
{% for ref in values|sort %}
{{ macros_site.ref_to_html_link(ref) }}{% if not loop.last %},{% endif %}
{% endfor %}
{%- endif -%}
{% endmacro %}
{%- macro render_report_section(section_number, section_name, section_data, type) %}
{% set event_class = get_event_class(section_name) %}
{% if babel_get_locale() == "cs" %}
{%- set section_text = event_class.label_cz or "Zaznamenali jsme dosud neklasifikovaný problém. Prosím prostudujte si data a události, nebo nás kontaktujte." -%}
{% else %}
{%- set section_text = event_class.label_en or "We encountered a problem that was not yet classified. Please study the relevant data and events, or contact us." -%}
{% endif %}
{% if event_class and event_class.reference %}
{{ '[' ~ section_number ~ '] ' }} {{ section_text }}
{% else %}
{{ '[' ~ section_number ~ '] ' ~ section_text }}
{% endif %}
{%- for ip in section_data | dictsort %}
{% set id = escape_id(section_name + '-' + ip[0]) %}
{% set data = ip[1] %}
{{ macros_site.report_table_header() }}
{%- if current_user.is_authenticated %}
{%- endif %}
{{ macros_site.report_table_row(ip[0], ip[1], current_user.is_authenticated) }}
{%- if current_user.is_authenticated %}
{%- endif -%}
{%- if section_name == "vulnerable-implementation" and data["source"]["ref"] -%}
{{ _("CVE") }}:
{% for ref in data["source"]["ref"]|sort %}
{{ macros_site.ref_to_html_link(ref) }}{% if not loop.last %},{% endif %}
{% endfor %}
{%- endif -%}
{%- elif "detector_data" in data and event_class and (event_class.displayed_main or event_class.displayed_source or event_class.displayed_target) -%}
{%- for detector in data["detector_data"] -%}
{%- set detector_data = data["detector_data"][detector] -%}
{{ render_references_info(event_class, detector_data, "Main", "Ref", "Reference") }}
{{ render_list_info(event_class, detector_data, "Main", "protocols", "Protocols") }}
{%- for field, display in REPORT_FIELDS_MAIN_NUMBER -%}
{{ render_number_info(event_class, detector_data, "Main", field, display) }}
{%- endfor -%}
{%- for field, display in REPORT_FIELDS_SOURCE_LIST -%}
{%- if field not in ["URL", "Ref"] -%}
{{ render_list_info(event_class, detector_data, "Source", field, display) }}
{%- else -%}
{{ render_references_info(event_class, detector_data, "Source", field, display) }}
{%- endif -%}
{%- endfor -%}
{%- for field, display in REPORT_FIELDS_SOURCE_NUMBER -%}
{{ render_number_info(event_class, detector_data, "Source", field, display) }}
{%- endfor -%}
{%- for field, display in REPORT_FIELDS_TARGET_LIST -%}
{%- if field not in ["URL", "Ref"] -%}
{{ render_list_info(event_class, detector_data, "Target", field, display) }}
{%- else -%}
{{ render_references_info(event_class, detector_data, "Target", field, display) }}
{%- endif -%}
{%- endfor -%}
{%- for field, display in REPORT_FIELDS_TARGET_NUMBER -%}
{{ render_number_info(event_class, detector_data, "Target", field, display) }}
{%- endfor -%}
{%- endfor -%}
{%- else -%}
{{ _("Additional information is not available for this source.") }}
{%- endif -%}
{%- if not loop.last %} {% endif %}
{%- endfor %}
{%- if current_user.is_authenticated %}
{%- for ip in section_data | dictsort %}
{% set id = escape_id(section_name + '-' + ip[0]) %}
{%- endfor %}
{%- endif %}
{% if event_class and permission_can('power') %}
{%- if item.structured_data['regular'] -%}
{%- if item.type == 'summary' %}
{{ _('our detection systems registered possible problem(s) related to Your IP address range or domain (timestamps are in timezone {:s}):').format(item.structured_data['timezone']) }}
{% else %}
{{ _('our detection systems registered the following possible problem(s) related to host {:s}, that appears to belong to Your IP address range or domain (timestamps are in timezone {:s}):').format(item.structured_data['regular'].values() | list | first | first, item.structured_data['timezone']) }}
{% endif -%}
{%- for section_name, section_data in item.structured_data['regular'] | dictsort %}
{{ render_report_section(loop.index, section_name, section_data, 'regular') }}
{%- if not loop.last -%}{%- endif -%}
{% endfor -%}
{%- endif %}
{%- if item.structured_data['relapsed'] -%}
{%- if item.type == 'summary' %}
{{ _('our detection systems registered the following RECURRING possible problem(s) related to Your IP address range or domain (timestamps are in timezone {:s}):').format(item.structured_data['timezone']) }}
{% else %}
{{ _('our detection systems registered the following RECURRING possible problem(s) related to host {:s}, that appears belong to Your IP address range or domain (timestamps are in timezone {:s}):').format(item.structured_data['relapsed'].values() | list | first | first, item.structured_data['timezone']) }}
{{ _('These possible problem(s) were already reported to You some time before, however we have detected relapses.') }}
{% endif -%}
{{ macros_common.render_info_severity(item) }}
{% autoescape false %}
{{ _('For further communication please use the contact email address <{:s}> and keep the identifier [{:s}] in email subject.').format("{:s}", item.label).format(template_vars['contact_email'], item.label, template_vars['contact_email']) }}