mirror of
https://github.com/Tivix/django-rest-auth.git
synced 2025-07-22 05:29:46 +03:00
Merge 703954f590
into 42d039b473
This commit is contained in:
commit
0bf7a9bca5
|
@ -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)
|
||||||
|
@ -153,10 +155,12 @@ class RegisterSerializer(serializers.Serializer):
|
||||||
|
|
||||||
def get_cleaned_data(self):
|
def get_cleaned_data(self):
|
||||||
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):
|
||||||
adapter = get_adapter()
|
adapter = get_adapter()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user