From f41cc116a1671435f811d8d17a39eb76b2509123 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Wed, 1 Jul 2020 18:59:18 -0400 Subject: [PATCH] security: Move backports notice to security page Move get_backports_in_use to upgrades. Signed-off-by: James Valleroy Reviewed-by: Sunil Mohan Adapa --- plinth/modules/help/templates/help_about.html | 13 ------------- plinth/modules/help/views.py | 15 --------------- plinth/modules/security/templates/security.html | 12 ++++++++++++ plinth/modules/security/views.py | 11 +++++++---- plinth/modules/upgrades/__init__.py | 15 +++++++++++++++ 5 files changed, 34 insertions(+), 32 deletions(-) diff --git a/plinth/modules/help/templates/help_about.html b/plinth/modules/help/templates/help_about.html index b0eeb0616..c8a4be47a 100644 --- a/plinth/modules/help/templates/help_about.html +++ b/plinth/modules/help/templates/help_about.html @@ -74,17 +74,4 @@ {% endblocktrans %} {% endif %}

- - {% if backports_in_use %} -

{% trans "Security Notice" %}

-

- {% blocktrans trimmed %} - You are using packages from Debian backports. Please note that these - packages do not have security support from Debian. However, they are - maintained on a best-effort basis by contributors in Debian and - FreedomBox community. - {% endblocktrans %} -

- {% endif %} - {% endblock %} diff --git a/plinth/modules/help/views.py b/plinth/modules/help/views.py index 047ed8a28..3a0127bdc 100644 --- a/plinth/modules/help/views.py +++ b/plinth/modules/help/views.py @@ -6,7 +6,6 @@ Help app for FreedomBox. import mimetypes import os import pathlib -import subprocess from apt.cache import Cache from django.core.files.base import File @@ -52,7 +51,6 @@ def about(request): 'version': __version__, 'new_version': not freedombox.candidate.is_installed, 'os_release': get_os_release(), - 'backports_in_use': get_backports_in_use(), } return TemplateResponse(request, 'help_about.html', context) @@ -134,16 +132,3 @@ def get_os_release(): line = line.split('=') output = line[1] return output - - -def get_backports_in_use(): - """Return whether backports packages are installed.""" - # Only freedombox package is set to be installed from backports currently. - output = subprocess.check_output(['apt-cache', 'policy', 'freedombox']) - for line in output.decode().split('\n'): - if 'Installed:' in line: - version = line.strip().split(': ')[1] - if 'bpo' in version: - return True - - return False diff --git a/plinth/modules/security/templates/security.html b/plinth/modules/security/templates/security.html index a9ce919e1..c1f6cf9d0 100644 --- a/plinth/modules/security/templates/security.html +++ b/plinth/modules/security/templates/security.html @@ -7,6 +7,18 @@ {% load i18n %} {% block status %} + {% if backports_in_use %} +

{% trans "Security Notice" %}

+

+ {% blocktrans trimmed %} + You are using packages from Debian backports. Please note that these + packages do not have security support from Debian. However, they are + maintained on a best-effort basis by contributors in Debian and + FreedomBox community. + {% endblocktrans %} +

+ {% endif %} + diff --git a/plinth/modules/security/views.py b/plinth/modules/security/views.py index d6ed5cd51..f55d619ca 100644 --- a/plinth/modules/security/views.py +++ b/plinth/modules/security/views.py @@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _ from plinth import action_utils, actions from plinth.modules import security +from plinth.modules.upgrades import get_backports_in_use from .forms import SecurityForm @@ -28,10 +29,12 @@ def index(request): else: form = SecurityForm(initial=status, prefix='security') - return TemplateResponse(request, 'security.html', { - 'app_info': security.app.info, - 'form': form, - }) + return TemplateResponse( + request, 'security.html', { + 'app_info': security.app.info, + 'form': form, + 'backports_in_use': get_backports_in_use(), + }) def get_status(request): diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index 7d83ca633..8a3161b58 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -3,6 +3,8 @@ FreedomBox app for upgrades. """ +import subprocess + from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_noop @@ -131,3 +133,16 @@ def disable(): def _setup_repositories(data): """Setup apt backport repositories.""" actions.superuser_run('upgrades', ['setup-repositories']) + + +def get_backports_in_use(): + """Return whether backports packages are installed.""" + # Only freedombox package is set to be installed from backports currently. + output = subprocess.check_output(['apt-cache', 'policy', 'freedombox']) + for line in output.decode().split('\n'): + if 'Installed:' in line: + version = line.strip().split(': ')[1] + if 'bpo' in version: + return True + + return False