From: Matías Aguirre Date: Wed, 17 Nov 2010 00:15:14 +0000 (-0200) Subject: Added callable function to supply possible username X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=6cd97be120a127596c2ce57fd7b2fcec97642042;p=django-social-auth.git Added callable function to supply possible username --- diff --git a/README.rst b/README.rst index 5b765e5..55e6e8c 100644 --- a/README.rst +++ b/README.rst @@ -75,6 +75,18 @@ Installation ./manage syncdb +- Not mandatory, but recommended:: + + SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user' + + or + + 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. + ------ OpenId diff --git a/social_auth/base.py b/social_auth/base.py index 8762f69..48204aa 100644 --- a/social_auth/base.py +++ b/social_auth/base.py @@ -74,10 +74,14 @@ class SocialAuthBackend(ModelBackend): if getattr(settings, 'SOCIAL_AUTH_FORCE_RANDOM_USERNAME', False): username = get_random_username() + elif 'username' in details: + username = details['username'] + elif hasattr(settings, 'SOCIAL_AUTH_DEFAULT_USERNAME'): + username = settings.SOCIAL_AUTH_DEFAULT_USERNAME + if callable(username): + username = username() else: - username = details.get('username') or \ - getattr(settings, 'SOCIAL_AUTH_DEFAULT_USERNAME', '') or \ - get_random_username() + username = get_random_username() name, idx = username, 2 while True: