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}(?