{%- 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, } %}