From 6cd97be120a127596c2ce57fd7b2fcec97642042 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=ADas=20Aguirre?= Date: Tue, 16 Nov 2010 22:15:14 -0200 Subject: [PATCH] Added callable function to supply possible username --- README.rst | 12 ++++++++++++ social_auth/base.py | 10 +++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) 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: -- 2.39.5