From 5e7452fecdd91a91afd82f695ae4a572c6113dec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=ADas=20Aguirre?= Date: Mon, 14 Feb 2011 23:07:49 -0200 Subject: [PATCH] Added username purifier method --- README.rst | 9 ++++++++- social_auth/backends/__init__.py | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) 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: -- 2.39.5