mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-08-26 12:46:08 +00:00
privacy: Disable DNS fallback option if resolved is not installed
Tests: - Ensure that systemd-resolved is not installed. - Notice that form field for Fallback DNS servers is disabled. Form value is unchecked (default value when initial value is not provided). - Submitting the form works with and without changes. - Ensure that systemd-resolved is installed. - Notice that form field for Fallback DNS servers is not disabled. Form value reflects the current state of fallback dns as shown in names app. - Submitting the form works with and without changes. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Veiko Aasa <veiko17@disroot.org>
This commit is contained in:
parent
dd16034e3c
commit
71ed5f16c2
@ -5,6 +5,7 @@ from django import forms
|
|||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from plinth import cfg
|
from plinth import cfg
|
||||||
|
from plinth.modules import names
|
||||||
from plinth.utils import format_lazy
|
from plinth.utils import format_lazy
|
||||||
|
|
||||||
|
|
||||||
@ -30,3 +31,9 @@ class PrivacyForm(forms.Form):
|
|||||||
'unusual circumstances where no DNS servers are known but '
|
'unusual circumstances where no DNS servers are known but '
|
||||||
'internet connectivity is available. Can be disabled in most '
|
'internet connectivity is available. Can be disabled in most '
|
||||||
'cases if network connectivity is stable and reliable.'))
|
'cases if network connectivity is stable and reliable.'))
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
"""Disable DNS fallback field if necessary."""
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.fields['dns_fallback'].disabled = (
|
||||||
|
not names.is_resolved_installed())
|
||||||
|
|||||||
@ -5,6 +5,7 @@ from django.contrib import messages
|
|||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
import plinth.modules.names.privileged as names_privileged
|
import plinth.modules.names.privileged as names_privileged
|
||||||
|
from plinth.modules import names
|
||||||
from plinth.modules.privacy.forms import PrivacyForm
|
from plinth.modules.privacy.forms import PrivacyForm
|
||||||
from plinth.views import AppView
|
from plinth.views import AppView
|
||||||
|
|
||||||
@ -21,7 +22,9 @@ class PrivacyAppView(AppView):
|
|||||||
"""Return the values to fill in the form."""
|
"""Return the values to fill in the form."""
|
||||||
initial = super().get_initial()
|
initial = super().get_initial()
|
||||||
initial.update(privileged.get_configuration())
|
initial.update(privileged.get_configuration())
|
||||||
initial.update(names_privileged.get_resolved_configuration())
|
if names.is_resolved_installed():
|
||||||
|
initial.update(names_privileged.get_resolved_configuration())
|
||||||
|
|
||||||
return initial
|
return initial
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
@ -34,10 +37,11 @@ class PrivacyAppView(AppView):
|
|||||||
if old_config['enable_popcon'] != new_config['enable_popcon']:
|
if old_config['enable_popcon'] != new_config['enable_popcon']:
|
||||||
changes['enable_popcon'] = new_config['enable_popcon']
|
changes['enable_popcon'] = new_config['enable_popcon']
|
||||||
|
|
||||||
if old_config['dns_fallback'] != new_config['dns_fallback']:
|
if 'dns_fallback' in old_config:
|
||||||
names_privileged.set_resolved_configuration(
|
if old_config['dns_fallback'] != new_config['dns_fallback']:
|
||||||
dns_fallback=new_config['dns_fallback'])
|
names_privileged.set_resolved_configuration(
|
||||||
is_changed = True
|
dns_fallback=new_config['dns_fallback'])
|
||||||
|
is_changed = True
|
||||||
|
|
||||||
if changes:
|
if changes:
|
||||||
privileged.set_configuration(**changes)
|
privileged.set_configuration(**changes)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user