diff --git a/django_etesync/serializers.py b/django_etesync/serializers.py index 7173d73..88d237f 100644 --- a/django_etesync/serializers.py +++ b/django_etesync/serializers.py @@ -219,12 +219,17 @@ class AuthenticationSignupSerializer(serializers.Serializer): def create(self, validated_data): """Function that's called when this serializer creates an item""" + user_data = validated_data.pop('user') salt = validated_data.pop('salt') pubkey = validated_data.pop('pubkey') with transaction.atomic(): - instance = User.objects.create(**validated_data) + instance = User.objects.get_or_create(**user_data) + if hasattr(instance, 'userinfo'): + raise serializers.ValidationError('User already exists') + instance.set_unusable_password() + # FIXME: send email verification models.UserInfo.objects.create(salt=salt, pubkey=pubkey, owner=instance)