Просмотр исходного кода

Fixes #8319: Custom URL fields should honor ALLOWED_URL_SCHEMES config parameter

jeremystretch 4 лет назад
Родитель
Сommit
b584f09223
2 измененных файлов с 6 добавлено и 3 удалено
  1. 1 0
      docs/release-notes/version-3.1.md
  2. 5 3
      netbox/utilities/validators.py

+ 1 - 0
docs/release-notes/version-3.1.md

@@ -18,6 +18,7 @@
 * [#8306](https://github.com/netbox-community/netbox/issues/8306) - Redirect user to previous page after login
 * [#8314](https://github.com/netbox-community/netbox/issues/8314) - Prevent custom fields with default values from appearing as applied filters erroneously
 * [#8317](https://github.com/netbox-community/netbox/issues/8317) - Fix CSV import of multi-select custom field values
+* [#8319](https://github.com/netbox-community/netbox/issues/8319) - Custom URL fields should honor `ALLOWED_URL_SCHEMES` config parameter
 
 ---
 

+ 5 - 3
netbox/utilities/validators.py

@@ -20,11 +20,13 @@ class EnhancedURLValidator(URLValidator):
         r'(?::\d{2,5})?'                    # Port number
         r'(?:[/?#][^\s]*)?'                 # Path
         r'\Z', re.IGNORECASE)
+    schemes = None
 
-    def __init__(self, schemes=None, **kwargs):
-        super().__init__(**kwargs)
-        if schemes is not None:
+    def __call__(self, value):
+        if self.schemes is None:
+            # We can't load the allowed schemes until the configuration has been initialized
             self.schemes = get_config().ALLOWED_URL_SCHEMES
+        return super().__call__(value)
 
 
 class ExclusionValidator(BaseValidator):