From: Matías Aguirre Date: Mon, 17 Jan 2011 22:07:42 +0000 (-0200) Subject: Remove username update, username is already generated and loaded in user instance... X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=f42fc57dae0b2a44a73b80707573c99d81aaef9e;p=django-social-auth.git Remove username update, username is already generated and loaded in user instance. Closes gh-12 --- diff --git a/social_auth/backends.py b/social_auth/backends.py index 30d780a..e98505d 100644 --- a/social_auth/backends.py +++ b/social_auth/backends.py @@ -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