Explorar o código

9669 sanitize social auth usernames (#10549)

Arthur Hanson %!s(int64=3) %!d(string=hai) anos
pai
achega
cc00789d35
Modificáronse 2 ficheiros con 10 adicións e 1 borrados
  1. 1 1
      netbox/netbox/settings.py
  2. 9 0
      netbox/users/utils.py

+ 1 - 1
netbox/netbox/settings.py

@@ -498,7 +498,7 @@ for param in dir(configuration):
 
 # Force usage of PostgreSQL's JSONB field for extra data
 SOCIAL_AUTH_JSONFIELD_ENABLED = True
-
+SOCIAL_AUTH_CLEAN_USERNAME_FUNCTION = 'netbox.users.utils.clean_username'
 
 #
 # Django Prometheus

+ 9 - 0
netbox/users/utils.py

@@ -0,0 +1,9 @@
+from social_core.storage import NO_ASCII_REGEX, NO_SPECIAL_REGEX
+
+
+def clean_username(value):
+    """Clean username removing any unsupported character"""
+    value = NO_ASCII_REGEX.sub('', value)
+    value = NO_SPECIAL_REGEX.sub('', value)
+    value = value.replace(':', '')
+    return value