From 84bf20e1b8bdeeec601a1a1ac53c760c9f1e08cf Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Sun, 23 Feb 2025 13:25:38 -0800 Subject: [PATCH] names: Handle addition of duplicate static domains Tests: - Adding an new unique domain works. - Adding an existing domain results in an error. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/modules/names/forms.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plinth/modules/names/forms.py b/plinth/modules/names/forms.py index 455626931..611e6e0e5 100644 --- a/plinth/modules/names/forms.py +++ b/plinth/modules/names/forms.py @@ -11,6 +11,8 @@ from django.utils.translation import gettext_lazy as _ from plinth import cfg from plinth.utils import format_lazy +from . import privileged + HOSTNAME_REGEX = r'^[a-zA-Z0-9]([-a-zA-Z0-9]{,61}[a-zA-Z0-9])?$' @@ -116,3 +118,11 @@ class DomainAddForm(forms.Form): r'^[a-zA-Z0-9]([-a-zA-Z0-9.]{,251}[a-zA-Z0-9])?$', _('Invalid domain name')), _domain_label_validator ], strip=True) + + def clean_domain_name(self): + """Check if the name is valid.""" + domain_name = self.cleaned_data['domain_name'] + if domain_name in privileged.get_domains(): + raise ValidationError(_('Domain already exists.')) + + return domain_name