]> git.parisson.com Git - django-social-auth.git/commitdiff
Added callable function to supply possible username
authorMatías Aguirre <matiasaguirre@gmail.com>
Wed, 17 Nov 2010 00:15:14 +0000 (22:15 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Wed, 17 Nov 2010 00:15:14 +0000 (22:15 -0200)
README.rst
social_auth/base.py

index 5b765e5ea5fa8a2882ec325efcb2196143672f75..55e6e8cca9282030690090ed252bf3c89ca44580 100644 (file)
@@ -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
index 8762f69dc1c10157268ee17bc85b0e4d9cfb5a8a..48204aade3b22e828822d0e798fa486fbdfef877 100644 (file)
@@ -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: