mirror of
https://github.com/Tivix/django-rest-auth.git
synced 2025-07-25 15:09:47 +03:00
Merge cc6919ab2a
into 802de89ed7
This commit is contained in:
commit
e3168f5ce8
|
@ -44,17 +44,19 @@ INSTALLED_APPS = (
|
|||
'django.contrib.staticfiles',
|
||||
'django.contrib.sites',
|
||||
|
||||
|
||||
'rest_framework',
|
||||
'rest_framework.authtoken',
|
||||
'rest_auth',
|
||||
|
||||
'allauth',
|
||||
'allauth.account',
|
||||
'rest_auth.registration',
|
||||
# 'allauth',
|
||||
# 'allauth.account',
|
||||
# 'rest_auth.registration',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
|
@ -105,3 +107,12 @@ SITE_ID = 1
|
|||
ACCOUNT_EMAIL_REQUIRED = True
|
||||
ACCOUNT_AUTHENTICATION_METHOD = 'email'
|
||||
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
|
||||
|
||||
CORS_ORIGIN_ALLOW_ALL = True
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
'DEFAULT_AUTHENTICATION_CLASSES': (
|
||||
'rest_framework.authentication.SessionAuthentication',
|
||||
'rest_framework.authentication.TokenAuthentication',
|
||||
)
|
||||
}
|
|
@ -33,5 +33,6 @@ urlpatterns = patterns('',
|
|||
|
||||
url(r'^rest-auth/', include('rest_auth.urls')),
|
||||
url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
|
||||
url(r'^account/', include('allauth.urls')),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
)
|
||||
|
|
|
@ -7,8 +7,9 @@ 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['access_token']
|
||||
|
||||
view = self.context.get('view')
|
||||
request = self.context.get('request')
|
||||
|
@ -38,6 +39,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
|
||||
|
|
|
@ -58,12 +58,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={'email': value})
|
||||
if not self.reset_form.is_valid():
|
||||
raise serializers.ValidationError('Error')
|
||||
return attrs
|
||||
return value
|
||||
|
||||
def save(self):
|
||||
request = self.context.get('request')
|
||||
|
@ -103,6 +103,7 @@ class PasswordResetConfirmSerializer(serializers.Serializer):
|
|||
self.user = UserModel._default_manager.get(pk=uid)
|
||||
except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):
|
||||
self._errors['uid'] = ['Invalid value']
|
||||
raise serializers.ValidationError('Invalid UID')
|
||||
|
||||
self.custom_validation(attrs)
|
||||
|
||||
|
@ -115,6 +116,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 +141,20 @@ 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
|
||||
#self._errors = self.set_password_form.errors
|
||||
#return None
|
||||
raise serializers.ValidationError(self.set_password_form.errors)
|
||||
return attrs
|
||||
|
||||
def save(self):
|
||||
|
|
|
@ -64,7 +64,7 @@ class BaseAPITestCase(object):
|
|||
is_json = bool(
|
||||
filter(lambda x: 'json' in x, self.response._headers['content-type']))
|
||||
if is_json and self.response.content:
|
||||
self.response.json = json.loads(self.response.content)
|
||||
self.response.json = json.loads(self.response.content.decode())
|
||||
else:
|
||||
self.response.json = {}
|
||||
if status_code:
|
||||
|
@ -176,7 +176,7 @@ class APITestCase1(TestCase, BaseAPITestCase):
|
|||
result['uid'] = int_to_base36(user.pk)
|
||||
else:
|
||||
from django.utils.http import urlsafe_base64_encode
|
||||
result['uid'] = urlsafe_base64_encode(force_bytes(user.pk))
|
||||
result['uid'] = urlsafe_base64_encode(force_bytes(user.pk)).decode()
|
||||
result['token'] = default_token_generator.make_token(user)
|
||||
return result
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ class Login(GenericAPIView):
|
|||
response_serializer = TokenSerializer
|
||||
|
||||
def login(self):
|
||||
self.user = self.serializer.object['user']
|
||||
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):
|
||||
|
|
2
setup.py
2
setup.py
|
@ -29,7 +29,7 @@ setup(
|
|||
zip_safe=False,
|
||||
install_requires=[
|
||||
'Django>=1.5.0',
|
||||
'djangorestframework>=2.3.13, <3.0',
|
||||
'djangorestframework>=3.0',
|
||||
'six>=1.8.0',
|
||||
],
|
||||
test_suite='runtests.runtests',
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
django-allauth>=0.18.0
|
||||
django-allauth==0.18.0
|
||||
responses>=0.2.2
|
||||
|
|
Loading…
Reference in New Issue
Block a user