From: Matías Aguirre Date: Tue, 15 Feb 2011 01:07:49 +0000 (-0200) Subject: Added username purifier method X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=5e7452fecdd91a91afd82f695ae4a572c6113dec;p=django-social-auth.git Added username purifier method --- diff --git a/README.rst b/README.rst index 719c692..32f75a4 100644 --- a/README.rst +++ b/README.rst @@ -181,7 +181,14 @@ Configuration import random SOCIAL_AUTH_DEFAULT_USERNAME = lambda: random.choice(['Darth Vader', 'Obi-Wan Kenobi', 'R2-D2', 'C-3PO', 'Yoda']) - final user name will have an integer suffix in case it's already taken. + or:: + + from django.template.defaultfilter import slugify + SOCIAL_AUTH_USERNAME_FIXER = lambda u: slugify(u) + + in case your user layout needs to purify username on some weird way. + + Final user name will have an integer suffix in case it's already taken. - OAuth_ authentication will store access_token by default, set this value to False to avoid such behavior:: diff --git a/social_auth/backends/__init__.py b/social_auth/backends/__init__.py index 97c3d90..b7d33fe 100644 --- a/social_auth/backends/__init__.py +++ b/social_auth/backends/__init__.py @@ -133,10 +133,12 @@ class SocialAuthBackend(ModelBackend): else: username = get_random_username() + fixer = getattr(settings, 'SOCIAL_AUTH_USERNAME_FIXER', lambda u: u) + name, idx = username, 2 while True: try: - User.objects.get(username=name) + User.objects.get(username=fixer(name)) name = username + str(idx) idx += 1 except User.DoesNotExist: