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

9669 sanitize social auth usernames (#10549)

Arthur Hanson 3 лет назад
Родитель
Сommit
cc00789d35
2 измененных файлов с 10 добавлено и 1 удалено
  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