1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #3588: Enforce object-form JSON for local context data on devices and VMs

This commit is contained in:
Jeremy Stretch
2019-10-10 10:41:08 -04:00
parent 4c7c40a09d
commit d849a49842
4 changed files with 19 additions and 1 deletions

View File

@ -805,7 +805,10 @@ class ConfigContext(models.Model):
class ConfigContextModel(models.Model):
"""
A model which includes local configuration context data. This local data will override any inherited data from
ConfigContexts.
"""
local_context_data = JSONField(
blank=True,
null=True,
@ -830,6 +833,16 @@ class ConfigContextModel(models.Model):
return data
def clean(self):
super().clean()
# Verify that JSON data is provided as an object
if self.local_context_data and type(self.local_context_data) is not dict:
raise ValidationError(
{'local_context_data': 'JSON data must be in object form. Example: {"foo": 123}'}
)
#
# Custom scripts