]> git.parisson.com Git - django-social-auth.git/commitdiff
Remove username update, username is already generated and loaded in user instance...
authorMatías Aguirre <matiasaguirre@gmail.com>
Mon, 17 Jan 2011 22:07:42 +0000 (20:07 -0200)
committerMatías Aguirre <matiasaguirre@gmail.com>
Mon, 17 Jan 2011 22:07:42 +0000 (20:07 -0200)
social_auth/backends.py

index 30d780a378768cb187bc6887574efe3c084993ad..e98505de70f1782eb3098e7d76fc9a2b1dde66f7 100644 (file)
@@ -41,7 +41,6 @@ class SocialAuthBackend(ModelBackend):
         response = kwargs.get('response')
         details = self.get_user_details(response)
         uid = self.get_user_id(details, response)
-        new_user = False
         try:
             social_user = UserSocialAuth.objects.select_related('user')\
                                                 .get(provider=self.name,
@@ -54,13 +53,12 @@ class SocialAuthBackend(ModelBackend):
                 username = self.username(details)
                 email = details.get('email')
                 user = User.objects.create_user(username=username, email=email)
-                new_user = True
             social_user = self.associate_auth(user, uid, response, details)
         else:
             user = social_user.user
 
-        # Update the user account data.
-        self.update_user_details(user, response, details, new_user=new_user)
+        # Update user account data.
+        self.update_user_details(user, response, details)
 
         # Update extra_data storage, unless disabled by setting
         if getattr(settings, 'SOCIAL_AUTH_EXTRA_DATA', True):
@@ -110,18 +108,18 @@ class SocialAuthBackend(ModelBackend):
         """Return default blank user extra data"""
         return ''
 
-    def update_user_details(self, user, response, details, new_user=False):
+    def update_user_details(self, user, response, details):
         """Update user details with (maybe) new data. Username is not
         changed if associating a new credential."""
-        changed = False
+        changed = False  # flag to track changes
 
         # check if values update should be left to signals handlers only
         if not getattr(settings, 'SOCIAL_AUTH_CHANGE_SIGNAL_ONLY', False):
             for name, value in details.iteritems():
-                # not update username if user already exists
-                if not new_user and name == USERNAME:
-                    continue
-                if value and value != getattr(user, name, value):
+                # do not update username, it was already generated by
+                # self.username(...) and loaded in given instance
+                if name != USERNAME and value and value != getattr(user, name,
+                                                                   value):
                     setattr(user, name, value)
                     changed = True