Преглед изворни кода

fix(utilities): Add atomic group in expandable field regex pattern

Replace non-capturing group with atomic group in expansion bracket regex
to prevent excessive backtracking. Add missing 'object' key to bulk view
context for template compatibility.
Martin Hauser пре 19 часа
родитељ
комит
5804b53bb1
2 измењених фајлова са 2 додато и 1 уклоњено
  1. 1 0
      netbox/netbox/views/generic/bulk_views.py
  2. 1 1
      netbox/utilities/forms/fields/expandable.py

+ 1 - 0
netbox/netbox/views/generic/bulk_views.py

@@ -258,6 +258,7 @@ class BulkCreateView(GetReturnURLMixin, BaseMultiObjectView):
     def _get_context(self, request, form, model_form):
     def _get_context(self, request, form, model_form):
         model = self.queryset.model
         model = self.queryset.model
         return {
         return {
+            'object': None,
             'obj_type': model._meta.verbose_name,
             'obj_type': model._meta.verbose_name,
             'obj_type_plural': model._meta.verbose_name_plural,
             'obj_type_plural': model._meta.verbose_name_plural,
             'form': form,
             'form': form,

+ 1 - 1
netbox/utilities/forms/fields/expandable.py

@@ -59,7 +59,7 @@ class ExpandableIPNetworkField(forms.CharField):
             return [value]
             return [value]
 
 
         # Replace expansion brackets with a neutral value to get a parseable IP/CIDR
         # Replace expansion brackets with a neutral value to get a parseable IP/CIDR
-        stripped = re.sub(r'\[[^\]]+\]', '0', value)
+        stripped = re.sub(r'(?>\[[^\]]+\])', '0', value)
         try:
         try:
             family = netaddr.IPNetwork(stripped).version
             family = netaddr.IPNetwork(stripped).version
         except (netaddr.AddrFormatError, ValueError):
         except (netaddr.AddrFormatError, ValueError):