From d50b5b5bcede36f22386c2f19fc55d6dd5f8b3fe Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Tue, 17 Mar 2015 00:29:36 +0100 Subject: [PATCH] Validate MAC addresses --- mdb/models.py | 4 ++-- mdb/validators.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mdb/models.py b/mdb/models.py index f2e9d97..b74f017 100644 --- a/mdb/models.py +++ b/mdb/models.py @@ -2,7 +2,7 @@ from django.db import models from django.db.models.signals import post_save, pre_save, pre_delete from django.dispatch import receiver -from validators import validate_hostname +from validators import validate_hostname, validate_macaddr import ipaddr import datetime @@ -556,7 +556,7 @@ class Host(models.Model): class Interface(models.Model): name = models.CharField(max_length=128) - macaddr = models.CharField(max_length=17) + macaddr = models.CharField(max_length=17, validators=[validate_macaddr]) pxe_filename = models.CharField(max_length=64, blank=True) dhcp_client = models.BooleanField(default=False) host = models.ForeignKey(Host) diff --git a/mdb/validators.py b/mdb/validators.py index 91861a5..58bfb1b 100644 --- a/mdb/validators.py +++ b/mdb/validators.py @@ -1,5 +1,15 @@ from django.core.validators import RegexValidator import re + # http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names hostname_re = re.compile(r'^(?!-)[-a-z0-9]+(?