{% extends 'generic/object.html' %} {% load buttons %} {% load custom_links %} {% load helpers %} {% load i18n %} {% load plugins %} {% block content %} {% include "netbox_security/inc/hierarchy_warning.html" %}
{% trans "IP" %}: {{ object.address }} · {% trans "Zone context" %}: {% for zone in policy_context.member_zones %}{{ zone|linkify }}{% if not forloop.last %}, {% endif %}{% empty %}{% trans "Unknown" %}{% endfor %} {% if policy_context.zone_device %} · {% trans "Device" %}: {{ policy_context.zone_device|linkify }}{% endif %} {% if policy_context.zone_interface and policy_context.zone_context_known %}
{% trans "Zone membership determined from interface" %} {{ policy_context.zone_interface|linkify }}.
{% endif %}
{% if not policy_context.zone_context_known %} {% endif %}
{% trans "NAT Pool Members" %}
{% if perms.netbox_security.add_natpoolmember %} {% trans "Create NAT Pool Member" %} {% endif %}
{% htmx_table 'plugins:netbox_security:natpoolmember_list' address_id=object.pk %}
{% trans "NAT Rules" %}
{% htmx_table 'plugins:netbox_security:natrule_list' ip_address_id=object.pk %}
{% trans "Addresses" %}
{% if perms.netbox_security.add_address %} {% trans "Create Address" %} {% endif %}
{% htmx_table 'plugins:netbox_security:address_list' ip_address_id=object.pk %}
{% trans "Security Zones" %}
{% if perms.netbox_security.add_securityzone %} {% trans "Create Security Zone" %} {% endif %}
{% htmx_table 'plugins:netbox_security:securityzone_list' ip_address_id=object.pk %}
{% trans "Policy candidates" %}

{% trans "These results describe this IP's side of each policy, not a connectivity verdict. The other endpoint, applications, and policy order also affect the outcome. Details include only visible criteria and may be incomplete." %}

{% if policy_context.policy_candidates %} {% include "netbox_security/inc/policy_candidates_table.html" with rows=policy_context.policy_candidates %} {% else %}

{% trans "No policy candidates found within the displayed address relationships and zone context." %}

{% endif %} {% if policy_context.excluded_policy_candidates %}
{% trans "Other address matches — excluded for this context" %} ({{ policy_context.excluded_policy_candidates|length }})

{% trans "These policies match the address, but their zone or address-book scope does not match this context." %}

{% include "netbox_security/inc/policy_candidates_table.html" with rows=policy_context.excluded_policy_candidates %}
{% endif %} {% if policy_context.inherited_address_objects %}

{% trans "Inherited Addresses (from parent prefixes)" %}

    {% for address in policy_context.inherited_address_objects %}
  • {{ address|linkify }}
  • {% endfor %}
{% endif %} {% if policy_context.address_set_hierarchy_rows %}

{% trans "Address Set Hierarchy" %}

    {% for row in policy_context.address_set_hierarchy_rows %}
  • {% for address_set in row.path %} {% if not forloop.first %} → {% endif %} {{ address_set|linkify }} {% endfor %} {% if row.address %} {% if row.path %} → {% endif %}[{{ row.address|linkify }}] {% endif %}
  • {% endfor %}
{% elif policy_context.address_objects %}

{% trans "Direct Addresses" %}

    {% for address in policy_context.address_objects %}
  • {{ address|linkify }}
  • {% endfor %}
{% endif %}
{% endblock %}