diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index ebe3e7d5c..0c3b1660b 100644 --- a/netbox/netbox/settings.py +++ b/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 diff --git a/netbox/users/utils.py b/netbox/users/utils.py new file mode 100644 index 000000000..114d8ab6d --- /dev/null +++ b/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