firewall: Show Run Diagnostics button in app

- Use AppView for firewall view so that diagnostics button shows up
  automatically. Consistency with the rest of the apps. Allow new features to
  AppView become useful.

- A status section is automatically added but can be removed when all the other
  apps loose their status section.

- Does not change anything else.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
This commit is contained in:
Sunil Mohan Adapa 2020-01-30 14:07:31 -08:00 committed by Veiko Aasa
parent 7cd5b11a49
commit dfd4d40ed1
No known key found for this signature in database
GPG Key ID: 478539CAE680674E
2 changed files with 25 additions and 23 deletions

View File

@ -23,5 +23,5 @@ from django.conf.urls import url
from . import views from . import views
urlpatterns = [ urlpatterns = [
url(r'^sys/firewall/$', views.index, name='index'), url(r'^sys/firewall/$', views.FirewallAppView.as_view(), name='index'),
] ]

View File

@ -18,32 +18,34 @@
FreedomBox app to configure a firewall. FreedomBox app to configure a firewall.
""" """
from django.template.response import TemplateResponse from plinth import views
from plinth.modules import firewall from plinth.modules import firewall
from . import components from . import components
def index(request): class FirewallAppView(views.AppView):
"""Serve introduction page""" """Serve firewall index page."""
if not firewall.get_enabled_status(): name = firewall.name
return TemplateResponse( description = firewall.description
request, 'firewall.html', { app_id = 'firewall'
'name': firewall.name, manual_page = firewall.manual_page
'description': firewall.description, template_name = 'firewall.html'
'firewall_status': 'not_running'
})
internal_enabled_ports = firewall.get_enabled_services(zone='internal') def get_context_data(self, *args, **kwargs):
external_enabled_ports = firewall.get_enabled_services(zone='external') """Add additional context data for the template."""
context = super().get_context_data(*args, **kwargs)
return TemplateResponse( status = 'running' if firewall.get_enabled_status() else 'not_running'
request, 'firewall.html', { context['firewall_status'] = status
'name': firewall.name,
'description': firewall.description, if status == 'running':
'components': components.Firewall.list(), context['components'] = components.Firewall.list()
'manual_page': firewall.manual_page, internal_enabled_ports = firewall.get_enabled_services(
'internal_enabled_ports': internal_enabled_ports, zone='internal')
'external_enabled_ports': external_enabled_ports external_enabled_ports = firewall.get_enabled_services(
}) zone='external')
context['internal_enabled_ports'] = internal_enabled_ports
context['external_enabled_ports'] = external_enabled_ports
return context