{%- import '_macros_site.html' as macros_site with context -%}
{#- ----------------------------------------------------------------------------
Column renderers for the events search results table.
----------------------------------------------------------------------------- #}
{% macro render_unassigned() -%}
{{ get_icon("unassigned") }}
{%- endmacro %}
{% macro col_detecttime(item, form_data) -%}
{{ babel_format_datetime(item.get_detect_time()) | replace(' ', ' ' | safe) }}
{%- endmacro %}
{% macro col_storagetime(item, form_data) -%}
{{ babel_format_datetime(item.get_storage_time()) | replace(' ', ' ' | safe) }}
{%- endmacro %}
{% macro col_id(item, form_data) -%}
{{ item.get_id() | truncate }}
{%- endmacro %}
{% macro col_description(item, form_data) -%}
{{ item.get_description() | truncate }}
{%- endmacro %}
{% macro col_tlp(item, form_data) -%}
{%- set tlp = item.get_tlp() %}
{%- if tlp %}
{{ macros_site.render_tlp(item) }}
{%- else %}
{{ render_unassigned() }}
{%- endif %}
{%- endmacro %}
{% macro col_category(item, form_data) -%}
{{ macros_site.render_widget_csag_category(
item.get_categories(),
form_data['categories'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_detector(item, form_data) -%}
{{ macros_site.render_widget_csag_detector(
item.get_detectors()[-1:],
form_data['detectors'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_detector_type(item, form_data) -%}
{{ macros_site.render_widget_csag_detectortype(
item.get_types('Node'),
form_data['detector_types'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_detector_sw(item, form_data) -%}
{{ macros_site.render_widget_csag_detectorsw(
item.get_node_sw(),
form_data['detector_softwares'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro _col_address(item, form_data, context) -%}
{{ macros_site.render_widget_csag_address(
item.get_addresses('Source' if context == 'source' else 'Target'),
[] + form_data['source_addrs'] + form_data['target_addrs'] + form_data['host_addrs'],
separate_dropdown=False,
item_limit=search_widget_item_limit,
context_param=context
)
}}
{%- endmacro %}
{% macro col_source_ip(item, form_data) %}{{ _col_address(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_ip(item, form_data) %}{{ _col_address(item, form_data, 'target') }}{% endmacro %}
{% macro _col_hostname(item, form_data, context) -%}
{{ macros_site.render_widget_csag_hostname(
item.get_hostnames('Source' if context == 'source' else 'Target'),
[] + form_data['source_addrs'] + form_data['target_addrs'] + form_data['host_addrs'],
separate_dropdown=False,
item_limit=search_widget_item_limit,
context_param=context
)
}}
{%- endmacro %}
{% macro col_source_hostname(item, form_data) %}{{ _col_hostname(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_hostname(item, form_data) %}{{ _col_hostname(item, form_data, 'target') }}{% endmacro %}
{% macro _col_severity(item, form_data, context) -%}
{%- set severity = item.get_severity() if context == 'source' else item.get_target_severity() %}
{%- if severity %}
{{ macros_site.render_widget_csag_severity(
[severity],
align_right=True,
separate_dropdown=False
)
}}
{%- else %}
{{ render_unassigned() }}
{%- endif %}
{%- endmacro %}
{% macro col_source_severity(item, form_data) %}{{ _col_severity(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_severity(item, form_data) %}{{ _col_severity(item, form_data, 'target') }}{% endmacro %}
{% macro _col_proto(item, form_data, context) -%}
{{ macros_site.render_widget_csag_protocol(
item.get_protocols('Source' if context == 'source' else 'Target'),
form_data['protocols'],
align_right=True,
separate_dropdown=False,
context_param=context
)
}}
{%- endmacro %}
{% macro col_source_proto(item, form_data) %}{{ _col_proto(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_proto(item, form_data) %}{{ _col_proto(item, form_data, 'target') }}{% endmacro %}
{% macro _col_port(item, form_data, context) -%}
{{ macros_site.render_widget_csag_port(
item.get_ports('Source' if context == 'source' else 'Target'),
form_data['source_ports'] if context == 'source' else form_data['target_ports'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_source_port(item, form_data) %}{{ _col_port(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_port(item, form_data) %}{{ _col_port(item, form_data, 'target') }}{% endmacro %}
{% macro _col_hosttype(item, form_data, context) -%}
{{ macros_site.render_widget_csag_hosttype(
item.get_types('Source' if context == 'source' else 'Target'),
form_data['source_types'] if context == 'source' else form_data['target_types'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_source_type(item, form_data) %}{{ _col_hosttype(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_type(item, form_data) %}{{ _col_hosttype(item, form_data, 'target') }}{% endmacro %}
{% macro _col_groups(item, form_data, context) -%}
{{ macros_site.render_widget_csag_abuse(
item.get_source_groups() if context == 'source' else item.get_target_groups(),
form_data['groups'] if context == 'source' else form_data['target_groups'],
align_right=True,
separate_dropdown=False
)
}}
{%- endmacro %}
{% macro col_source_groups(item, form_data) %}{{ _col_groups(item, form_data, 'source') }}{% endmacro %}
{% macro col_target_groups(item, form_data) %}{{ _col_groups(item, form_data, 'target') }}{% endmacro %}
{% macro col_source_class(item, form_data) -%}
{%- set class = item.get_class() %}
{%- if class %}
{{ macros_site.render_widget_csag_srcclass(
[class],
[] + form_data['classes'],
align_right=True,
separate_dropdown=False,
context_param='source'
)
}}
{%- else %}
{{ render_unassigned() }}
{%- endif %}
{%- endmacro %}
{% macro col_target_class(item, form_data) -%}
{%- set class = item.get_target_class() %}
{%- if class %}
{{ macros_site.render_widget_csag_tgtclass(
[class],
[] + form_data['target_classes'],
align_right=True,
separate_dropdown=False,
context_param='target'
)
}}
{%- else %}
{{ render_unassigned() }}
{%- endif %}
{%- endmacro %}
{#- ----------------------------------------------------------------------------
Dispatch table.
----------------------------------------------------------------------------- #}
{% set column_renderers = {
'detecttime': col_detecttime,
'storagetime': col_storagetime,
'id': col_id,
'description': col_description,
'tlp': col_tlp,
'source.ip': col_source_ip,
'target.ip': col_target_ip,
'source.hostname': col_source_hostname,
'target.hostname': col_target_hostname,
'source.severity': col_source_severity,
'target.severity': col_target_severity,
'source.class': col_source_class,
'target.class': col_target_class,
'source.proto': col_source_proto,
'target.proto': col_target_proto,
'source.port': col_source_port,
'target.port': col_target_port,
'source.type': col_source_type,
'target.type': col_target_type,
'category': col_category,
'detector': col_detector,
'detector.type': col_detector_type,
'detector.sw': col_detector_sw,
'source.groups': col_source_groups,
'target.groups': col_target_groups,
} %}