diff --git a/rest_auth/registration/serializers.py b/rest_auth/registration/serializers.py index 7a403a0..66473d5 100644 --- a/rest_auth/registration/serializers.py +++ b/rest_auth/registration/serializers.py @@ -7,9 +7,8 @@ class SocialLoginSerializer(serializers.Serializer): access_token = serializers.CharField(required=True) - def validate_access_token(self, attrs, source): - access_token = attrs[source] - + def validate(self, attrs): + access_token = attrs.get('access_token') view = self.context.get('view') request = self.context.get('request') @@ -38,6 +37,6 @@ class SocialLoginSerializer(serializers.Serializer): if not login.is_existing: login.lookup() login.save(request, connect=True) - self.object = {'user': login.account.user} + attrs['user'] = login.account.user return attrs diff --git a/rest_auth/serializers.py b/rest_auth/serializers.py index 00fc438..ccbc84d 100644 --- a/rest_auth/serializers.py +++ b/rest_auth/serializers.py @@ -17,7 +17,6 @@ class LoginSerializer(AuthTokenSerializer): def validate(self, attrs): attrs = super(LoginSerializer, self).validate(attrs) - if 'rest_auth.registration' in settings.INSTALLED_APPS: from allauth.account import app_settings if app_settings.EMAIL_VERIFICATION == app_settings.EmailVerificationMethod.MANDATORY: @@ -58,12 +57,12 @@ class PasswordResetSerializer(serializers.Serializer): password_reset_form_class = PasswordResetForm - def validate_email(self, attrs, source): + def validate_email(self, value): # Create PasswordResetForm with the serializer - self.reset_form = self.password_reset_form_class(data=attrs) + self.reset_form = self.password_reset_form_class(data=self.initial_data) if not self.reset_form.is_valid(): raise serializers.ValidationError('Error') - return attrs + return value def save(self): request = self.context.get('request') @@ -115,6 +114,8 @@ class PasswordResetConfirmSerializer(serializers.Serializer): if not default_token_generator.check_token(self.user, attrs['token']): self._errors['token'] = ['Invalid value'] + return attrs + def save(self): self.set_password_form.save() @@ -138,19 +139,18 @@ class PasswordChangeSerializer(serializers.Serializer): self.request = self.context.get('request') self.user = getattr(self.request, 'user', None) - def validate_old_password(self, attrs, source): + def validate_old_password(self, value): if self.old_password_field_enabled and self.user and \ - not self.user.check_password(attrs.get(source, '')): + not self.user.check_password(value): raise serializers.ValidationError('Invalid password') - return attrs + return value def validate(self, attrs): self.set_password_form = self.set_password_form_class(user=self.user, data=attrs) if not self.set_password_form.is_valid(): - self._errors = self.set_password_form.errors - return None + raise serializers.ValidationError(self.set_password_form.errors) return attrs def save(self): diff --git a/rest_auth/views.py b/rest_auth/views.py index 0f18fd5..38430a8 100644 --- a/rest_auth/views.py +++ b/rest_auth/views.py @@ -31,7 +31,8 @@ class Login(GenericAPIView): response_serializer = TokenSerializer def login(self): - self.user = self.serializer.object['user'] + # import ipdb; ipdb.set_trace() + self.user = self.serializer.validated_data['user'] self.token, created = self.token_model.objects.get_or_create( user=self.user) if getattr(settings, 'REST_SESSION_LOGIN', True): diff --git a/setup.py b/setup.py index 1a4fdfe..d5c949f 100644 --- a/setup.py +++ b/setup.py @@ -29,8 +29,8 @@ setup( zip_safe=False, install_requires=[ 'Django>=1.5.0', - 'djangorestframework>=2.3.13, <3.0', - 'six>=1.8.0', + 'djangorestframework>=3.0', + 'six>=1.9.0', ], test_suite='runtests.runtests', include_package_data=True, diff --git a/test_requirements.pip b/test_requirements.pip index 667775b..d619bed 100644 --- a/test_requirements.pip +++ b/test_requirements.pip @@ -1,2 +1,2 @@ -django-allauth>=0.18.0 -responses>=0.2.2 +django-allauth>=0.19.0 +responses>=0.3.0