def _post_save(sender, instance, **kwargs): original_instance = getattr(instance, "_original_instance") if hasattr( instance, "_original_instance") else None # add user's email to email identity and social auth if not exist if not instance.is_dummy_user: EmailIdentity.objects.get_or_create(email=instance.email, user=instance) if not UserSocialAuth.objects.filter(user=instance, provider="email", uid=instance.email).exists(): user_social_auth = UserSocialAuth.create_social_auth( instance, instance.email, 'email') user_social_auth.extra_data = {'email': [instance.email]} user_social_auth.save() if original_instance and original_instance.email != instance.email: if not original_instance.is_dummy_user: # delete the user's email from email identity and social auth EmailIdentity.objects.filter(email=original_instance.email, user=original_instance).delete() UserSocialAuth.objects.filter(provider="email", uid=original_instance.email, user=original_instance).delete() # update profile's email if profile's email is original email Profile.objects.filter(email=original_instance.email, user=instance).update(email=instance.email) if original_instance and any([ original_instance.first_name != instance.first_name, original_instance.last_name != instance.last_name ]): # user changed first name or last name, send a named_changed signal. name_changed.send(sender=instance.__class__, user=instance)
def _post_save(sender, instance, **kwargs): if not hasattr(instance, "auth_identity"): # not triggered by user. return original_instance = getattr(instance, "_original_instance") if hasattr(instance, "_original_instance") else None auth_identity = getattr(instance, "auth_identity") if auth_identity: # add email to email identity and social auth if not exist EmailIdentity.objects.get_or_create(email=instance.email, user=instance.user) if not UserSocialAuth.objects.filter(user=instance.user, provider="email", uid=instance.email).exists(): user_social_auth = UserSocialAuth.create_social_auth(instance.user, instance.email, 'email') user_social_auth.extra_data = {'email': [instance.email]} user_social_auth.save() if original_instance and (original_instance.email != instance.email or not auth_identity): # delete the profile's email from email identity and social auth EmailIdentity.objects.filter(email=original_instance.email, user=original_instance.user).delete() UserSocialAuth.objects.filter(provider="email", uid=original_instance.email, user=original_instance.user).delete()
def _post_save(sender, instance, **kwargs): original_instance = getattr(instance, "_original_instance") if hasattr(instance, "_original_instance") else None # add user's email to email identity and social auth if not exist if not instance.is_dummy_user: EmailIdentity.objects.get_or_create(email=instance.email, user=instance) if not UserSocialAuth.objects.filter(user=instance, provider="email", uid=instance.email).exists(): user_social_auth = UserSocialAuth.create_social_auth(instance, instance.email, 'email') user_social_auth.extra_data = {'email': [instance.email]} user_social_auth.save() if original_instance and original_instance.email != instance.email: if not original_instance.is_dummy_user: # delete the user's email from email identity and social auth EmailIdentity.objects.filter(email=original_instance.email, user=original_instance).delete() UserSocialAuth.objects.filter(provider="email", uid=original_instance.email, user=original_instance).delete() # update profile's email if profile's email is original email Profile.objects.filter(email=original_instance.email, user=instance).update(email=instance.email) if original_instance and any([original_instance.first_name != instance.first_name, original_instance.last_name != instance.last_name]): # user changed first name or last name, send a named_changed signal. name_changed.send(sender=instance.__class__, user=instance)
def _post_save(sender, instance, **kwargs): if not hasattr(instance, "auth_identity"): # not triggered by user. return original_instance = getattr(instance, "_original_instance") if hasattr( instance, "_original_instance") else None auth_identity = getattr(instance, "auth_identity") if auth_identity: # add email to email identity and social auth if not exist EmailIdentity.objects.get_or_create(email=instance.email, user=instance.user) if not UserSocialAuth.objects.filter(user=instance.user, provider="email", uid=instance.email).exists(): user_social_auth = UserSocialAuth.create_social_auth( instance.user, instance.email, 'email') user_social_auth.extra_data = {'email': [instance.email]} user_social_auth.save() if original_instance and (original_instance.email != instance.email or not auth_identity): # delete the profile's email from email identity and social auth EmailIdentity.objects.filter(email=original_instance.email, user=original_instance.user).delete() UserSocialAuth.objects.filter( provider="email", uid=original_instance.email, user=original_instance.user).delete() if not original_instance: address = instance.postal_address try: # Check if the user has the same profile address # Check if there is a user address oscar_add = UserAddress.objects.get( line1=address.line1, line2=address.line2, line3=address.line3, line4=address.locality, state=address.state, postcode=address.postcode, country=Country.objects.get(iso_3166_1_a2=address.country), user=instance.user) if not address.oscar_address: address.oscar_address = oscar_add address.save() elif address.oscar_address.id != oscar_add.id: address.oscar_address = oscar_add address.save() except UserAddress.DoesNotExist: oscar_address = UserAddress.objects.create( line1=address.line1, line2=address.line2, line3=address.line3, line4=address.locality, state=address.state, postcode=address.postcode, country=Country.objects.get(iso_3166_1_a2=address.country), user=instance.user) address.oscar_address = oscar_address address.save() # Clear out unused addresses user = instance.user user_addr = Address.objects.filter(user=user) for u in user_addr: if not u.profiles.all(): u.oscar_address.delete() u.delete()
def setUp(self): user = EmailUser.objects.create(email=REGISTERED_USER_EMAIL) UserSocialAuth.create_social_auth(user, user.email, 'email') self.client = Client()
def create_user(**kwargs): user = EmailUser.objects.create(**kwargs) UserSocialAuth.create_social_auth(user, user.email, "email") return user
def _post_save(sender, instance, **kwargs): if not hasattr(instance, "auth_identity"): # not triggered by user. return original_instance = getattr(instance, "_original_instance") if hasattr(instance, "_original_instance") else None auth_identity = getattr(instance, "auth_identity") if auth_identity: # add email to email identity and social auth if not exist EmailIdentity.objects.get_or_create(email=instance.email, user=instance.user) if not UserSocialAuth.objects.filter(user=instance.user, provider="email", uid=instance.email).exists(): user_social_auth = UserSocialAuth.create_social_auth(instance.user, instance.email, 'email') user_social_auth.extra_data = {'email': [instance.email]} user_social_auth.save() if original_instance and (original_instance.email != instance.email or not auth_identity): # delete the profile's email from email identity and social auth EmailIdentity.objects.filter(email=original_instance.email, user=original_instance.user).delete() UserSocialAuth.objects.filter(provider="email", uid=original_instance.email, user=original_instance.user).delete() if not original_instance: address = instance.postal_address try: # Check if the user has the same profile address # Check if there is a user address oscar_add = UserAddress.objects.get( line1 = address.line1, line2 = address.line2, line3 = address.line3, line4 = address.locality, state = address.state, postcode = address.postcode, country = Country.objects.get(iso_3166_1_a2=address.country), user = instance.user ) if not address.oscar_address: address.oscar_address = oscar_add address.save() elif address.oscar_address.id != oscar_add.id: address.oscar_address = oscar_add address.save() except UserAddress.DoesNotExist: oscar_address = UserAddress.objects.create( line1 = address.line1, line2 = address.line2, line3 = address.line3, line4 = address.locality, state = address.state, postcode = address.postcode, country = Country.objects.get(iso_3166_1_a2=address.country), user = instance.user ) address.oscar_address = oscar_address address.save() # Clear out unused addresses user = instance.user user_addr = Address.objects.filter(user=user) for u in user_addr: if not u.profiles.all(): u.oscar_address.delete() u.delete()
def _create_user_social_auth(self, user): user_social_auth = UserSocialAuth.create_social_auth(user, user.email, 'email') user_social_auth.extra_data = {'email': [user.email]} user_social_auth.save() return user_social_auth