From 7c9509c159b3be1f12139a1ca7ca9523d953200e Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Tue, 27 Jan 2015 16:41:44 +0100 Subject: [PATCH] implement domain name validation - implement domains.forms.relative_domain_validator - use the validator for domain field validation in domains.forms.CreateHostingDomainForm - use the validator for subdomain field validation in websites.forms.AddWebsiteForm --- docs/changelog.rst | 1 + gnuviechadmin/domains/forms.py | 15 +++++++++++++++ gnuviechadmin/websites/forms.py | 8 +++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index b98b466..a53cc9d 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,7 @@ Changelog ========= +* :support:`-` implement domain name validation * :feature:`-` implement deletion of websites * :feature:`-` implement setup of websites * :support:`-` add webtasks interface diff --git a/gnuviechadmin/domains/forms.py b/gnuviechadmin/domains/forms.py index ba2a654..fff18cb 100644 --- a/gnuviechadmin/domains/forms.py +++ b/gnuviechadmin/domains/forms.py @@ -4,6 +4,8 @@ This module defines form classes for domain editing. """ from __future__ import absolute_import, unicode_literals +import re + from django import forms from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _ @@ -17,6 +19,18 @@ from crispy_forms.layout import ( from .models import HostingDomain +def relative_domain_validator(value): + """ + This validator ensures that the given value is a valid lowercase + """ + if len(value) > 254: + raise forms.ValidationError( + _('host name too long'), code='too-long') + allowed = re.compile(r"(?!-)[a-z\d-]{1,63}(?