From efa0fc2b0996cea4c6b823f76aec52b9b339ef8e Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 22 Jun 2021 14:00:54 -0400 Subject: [PATCH] Fixes #6640: Disallow numeric values in custom text fields --- docs/release-notes/version-2.11.md | 1 + netbox/extras/models/customfields.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md index 34c848267..06020a9ac 100644 --- a/docs/release-notes/version-2.11.md +++ b/docs/release-notes/version-2.11.md @@ -5,6 +5,7 @@ ### Bug Fixes * [#6626](https://github.com/netbox-community/netbox/issues/6626) - Fix site field on VM search form; add site group +* [#6640](https://github.com/netbox-community/netbox/issues/6640) - Disallow numeric values in custom text fields * [#6652](https://github.com/netbox-community/netbox/issues/6652) - Fix exception when adding components in bulk to multiple devices --- diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index b88c73531..60c6adce9 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -280,8 +280,10 @@ class CustomField(BigIDModel): if value not in [None, '']: # Validate text field - if self.type == CustomFieldTypeChoices.TYPE_TEXT and self.validation_regex: - if not re.match(self.validation_regex, value): + if self.type == CustomFieldTypeChoices.TYPE_TEXT: + if type(value) is not str: + raise ValidationError(f"Value must be a string.") + if self.validation_regex and not re.match(self.validation_regex, value): raise ValidationError(f"Value must match regex '{self.validation_regex}'") # Validate integer