Sunil Mohan Adapa a62b7c7522
firewall: Use privileged decorator, drop showing running status
- If a daemon is not-running, we already show an error message to the user. Use
that mechanism instead of the custom one.

Tests:

- Functional tests work.
- Initial setup for firewall on first boot works.
  - Default zone of the firewalld is set to external in /etc/firewalld.conf
- Status of various apps is shown properly in the app page
- If firewalld is not running, the app page is still displayed properly and
  message that firewalld is not running is shown.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-10-08 18:52:00 -04:00

97 lines
3.2 KiB
HTML

{% extends "app.html" %}
{% comment %}
# SPDX-License-Identifier: AGPL-3.0-or-later
{% endcomment %}
{% load i18n %}
{% load static %}
{% block page_head %}
<link type="text/css" rel="stylesheet"
href="{% static 'firewall/firewall.css' %}"/>
{% endblock %}
{% block configuration %}
<h3>{% trans "Status" %}</h3>
<div class="table-responsive">
<table class='table table-autowidth'>
<thead>
<th>{% trans "Service/Port" %}</th>
<th>{% trans "Status" %}</th>
</thead>
<tbody>
{% for component in components|dictsort:"name" %}
{% if component.ports %}
<tr>
<td class="app-name">
<a class="dropdown-toggle" href="#"
data-toggle="collapse" role="button"
data-target=".{{component.component_id}}"
aria-expanded="false"
aria-controls="{{component.component_id}}">
{{ component.name }}</a>
</td>
<td class="app-status">
{% if component.is_enabled %}
<span class='badge badge-success'>
{% trans "Enabled" %}</span>
{% else %}
<span class='badge badge-warning'>
{% trans "Disabled" %}</span>
{% endif %}
</td>
</tr>
{% for port in component.ports_details %}
<tr class="collapse {{component.component_id}}">
<td class='service'>
<span class="service-name">{{ port.name }}</span>:
{% for port_number, protocol in port.details %}
{{ port_number }}/{{ protocol }}
{% endfor %}
</td>
<td class="service-status">
{% if port.name in internal_enabled_ports and port.name in external_enabled_ports %}
<span class='badge badge-success'>
{% trans "Permitted" %}</span>
{% elif port.name in internal_enabled_ports %}
<span class='badge badge-warning'>
{% trans "Permitted (internal only)" %}</span>
{% elif port.name in external_enabled_ports %}
<span class='badge badge-warning'>
{% trans "Permitted (external only)" %}</span>
{% else %}
<span class='badge badge-danger'>
{% trans "Blocked" %}</span>
{% endif %}
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</tbody>
</table>
</div>
<p>
<em>
{% blocktrans trimmed %}
The operation of the firewall is automatic. When you enable
a service it is also permitted in the firewall and when you
disable a service it is also disabled in the firewall.
{% endblocktrans %}
</em>
</p>
<h3>{%trans "Advanced" %} </h3>
<p>
{% blocktrans trimmed %}
Advanced firewall operations such as opening custom ports are provided
by the <a href="/_cockpit/network/firewall">Cockpit</a> app.
{% endblocktrans %}
</p>
{% endblock %}