]> git.parisson.com Git - django-social-auth.git/commitdiff
Added username purifier method
authorMatías Aguirre <matiasaguirre@gmail.com>
Tue, 15 Feb 2011 01:07:49 +0000 (23:07 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Tue, 15 Feb 2011 01:07:49 +0000 (23:07 -0200)
README.rst
social_auth/backends/__init__.py

index 719c692f65826e8eb4e8dc23d313e6504a2158fe..32f75a47f07118dcf10c8a3ace90ee94c21b4306 100644 (file)
@@ -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::
index 97c3d906fda40f6b8b5be3a64220fa919aec3ed7..b7d33fe4e1338664e79f9bbf543f27578eef133a 100644 (file)
@@ -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: