소스 검색

9669 sanitize social auth usernames (#10549)

Arthur Hanson 3 년 전
부모
커밋
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