This commit is contained in:
kdzch 2017-10-03 14:53:30 +00:00 committed by GitHub
commit 0bf7a9bca5
3 changed files with 31 additions and 7 deletions

View File

@ -127,6 +127,8 @@ class RegisterSerializer(serializers.Serializer):
email = serializers.EmailField(required=allauth_settings.EMAIL_REQUIRED) email = serializers.EmailField(required=allauth_settings.EMAIL_REQUIRED)
password1 = serializers.CharField(write_only=True) password1 = serializers.CharField(write_only=True)
password2 = serializers.CharField(write_only=True) password2 = serializers.CharField(write_only=True)
first_name = serializers.CharField(required=settings.ACCOUNT_FIRST_NAME_REQUIRED, max_length=30)
last_name = serializers.CharField(required=settings.ACCOUNT_LAST_NAME_REQUIRED, max_length=30)
def validate_username(self, username): def validate_username(self, username):
username = get_adapter().clean_username(username) username = get_adapter().clean_username(username)
@ -155,7 +157,9 @@ class RegisterSerializer(serializers.Serializer):
return { return {
'username': self.validated_data.get('username', ''), 'username': self.validated_data.get('username', ''),
'password1': self.validated_data.get('password1', ''), 'password1': self.validated_data.get('password1', ''),
'email': self.validated_data.get('email', '') 'email': self.validated_data.get('email', ''),
'first_name': self.validated_data.get('first_name', ''),
'last_name': self.validated_data.get('last_name', ''),
} }
def save(self, request): def save(self, request):

View File

@ -25,7 +25,12 @@ class LoginSerializer(serializers.Serializer):
user = None user = None
if email and password: if email and password:
user = authenticate(email=email, password=password) try:
username = UserModel.objects.get(email__iexact=email).get_username()
user = authenticate(username=username, password=password)
except UserModel.DoesNotExist:
msg = _('Unable to log in with provided credentials.')
raise exceptions.ValidationError(msg)
else: else:
msg = _('Must include "email" and "password".') msg = _('Must include "email" and "password".')
raise exceptions.ValidationError(msg) raise exceptions.ValidationError(msg)
@ -47,7 +52,12 @@ class LoginSerializer(serializers.Serializer):
user = None user = None
if email and password: if email and password:
user = authenticate(email=email, password=password) try:
username = UserModel.objects.get(email__iexact=email).get_username()
user = authenticate(username=username, password=password)
except UserModel.DoesNotExist:
msg = _('Unable to log in with provided credentials.')
raise exceptions.ValidationError(msg)
elif username and password: elif username and password:
user = authenticate(username=username, password=password) user = authenticate(username=username, password=password)
else: else:
@ -71,7 +81,7 @@ class LoginSerializer(serializers.Serializer):
user = self._validate_email(email, password) user = self._validate_email(email, password)
# Authentication through username # Authentication through username
if app_settings.AUTHENTICATION_METHOD == app_settings.AuthenticationMethod.USERNAME: elif app_settings.AUTHENTICATION_METHOD == app_settings.AuthenticationMethod.USERNAME:
user = self._validate_username(username, password) user = self._validate_username(username, password)
# Authentication through either username or email # Authentication through either username or email

View File

@ -5,7 +5,17 @@ from rest_auth.views import (
PasswordResetView, PasswordResetConfirmView PasswordResetView, PasswordResetConfirmView
) )
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view()
def null_view(request):
return Response(status=status.HTTP_400_BAD_REQUEST)
urlpatterns = [ urlpatterns = [
url(r'^password-reset-confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', null_view ,name='password_reset_confirm'),
url(r"^confirm-email/$", null_view, name="account_email_verification_sent"),
# URLs that do not require a session or valid token # URLs that do not require a session or valid token
url(r'^password/reset/$', PasswordResetView.as_view(), url(r'^password/reset/$', PasswordResetView.as_view(),
name='rest_password_reset'), name='rest_password_reset'),