mirror of
https://github.com/Tivix/django-rest-auth.git
synced 2025-02-11 15:30:34 +03:00
chore: refactored error messages
This commit is contained in:
parent
9d1f65eedc
commit
e0c4ffe0d6
|
@ -23,6 +23,21 @@ class SocialLoginSerializer(serializers.Serializer):
|
||||||
access_token = serializers.CharField(required=False, allow_blank=True)
|
access_token = serializers.CharField(required=False, allow_blank=True)
|
||||||
code = serializers.CharField(required=False, allow_blank=True)
|
code = serializers.CharField(required=False, allow_blank=True)
|
||||||
|
|
||||||
|
default_error_messages = {
|
||||||
|
'view_not_defined':
|
||||||
|
_('View is not defined, pass it as a context variable'),
|
||||||
|
'adapter_class_missing':
|
||||||
|
_('Define adapter_class in view'),
|
||||||
|
'callback_url_missing':
|
||||||
|
_('Define callback_url in view'),
|
||||||
|
'client_class_missing':
|
||||||
|
_('Define client_class in view'),
|
||||||
|
'incorrect_input':
|
||||||
|
_('Incorrect input. access_token or code is required.'),
|
||||||
|
'incorrect_value':
|
||||||
|
_('Incorrect value')
|
||||||
|
}
|
||||||
|
|
||||||
def _get_request(self):
|
def _get_request(self):
|
||||||
request = self.context.get('request')
|
request = self.context.get('request')
|
||||||
if not isinstance(request, HttpRequest):
|
if not isinstance(request, HttpRequest):
|
||||||
|
@ -49,13 +64,11 @@ class SocialLoginSerializer(serializers.Serializer):
|
||||||
request = self._get_request()
|
request = self._get_request()
|
||||||
|
|
||||||
if not view:
|
if not view:
|
||||||
raise serializers.ValidationError(
|
self.fail('view_not_defined')
|
||||||
_("View is not defined, pass it as a context variable")
|
|
||||||
)
|
|
||||||
|
|
||||||
adapter_class = getattr(view, 'adapter_class', None)
|
adapter_class = getattr(view, 'adapter_class', None)
|
||||||
if not adapter_class:
|
if not adapter_class:
|
||||||
raise serializers.ValidationError(_("Define adapter_class in view"))
|
self.fail('adapter_class_missing')
|
||||||
|
|
||||||
adapter = adapter_class(request)
|
adapter = adapter_class(request)
|
||||||
app = adapter.get_provider().get_app(request)
|
app = adapter.get_provider().get_app(request)
|
||||||
|
@ -73,13 +86,12 @@ class SocialLoginSerializer(serializers.Serializer):
|
||||||
self.client_class = getattr(view, 'client_class', None)
|
self.client_class = getattr(view, 'client_class', None)
|
||||||
|
|
||||||
if not self.callback_url:
|
if not self.callback_url:
|
||||||
|
self.fail('callback_url_missing')
|
||||||
raise serializers.ValidationError(
|
raise serializers.ValidationError(
|
||||||
_("Define callback_url in view")
|
_("Define callback_url in view")
|
||||||
)
|
)
|
||||||
if not self.client_class:
|
if not self.client_class:
|
||||||
raise serializers.ValidationError(
|
self.fail('client_class_missing')
|
||||||
_("Define client_class in view")
|
|
||||||
)
|
|
||||||
|
|
||||||
code = attrs.get('code')
|
code = attrs.get('code')
|
||||||
|
|
||||||
|
@ -98,8 +110,7 @@ class SocialLoginSerializer(serializers.Serializer):
|
||||||
access_token = token['access_token']
|
access_token = token['access_token']
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise serializers.ValidationError(
|
self.fail('incorrect_input')
|
||||||
_("Incorrect input. access_token or code is required."))
|
|
||||||
|
|
||||||
social_token = adapter.parse_token({'access_token': access_token})
|
social_token = adapter.parse_token({'access_token': access_token})
|
||||||
social_token.app = app
|
social_token.app = app
|
||||||
|
@ -108,7 +119,7 @@ class SocialLoginSerializer(serializers.Serializer):
|
||||||
login = self.get_social_login(adapter, app, social_token, access_token)
|
login = self.get_social_login(adapter, app, social_token, access_token)
|
||||||
complete_social_login(request, login)
|
complete_social_login(request, login)
|
||||||
except HTTPError:
|
except HTTPError:
|
||||||
raise serializers.ValidationError(_('Incorrect value'))
|
self.fail('incorrect_value')
|
||||||
|
|
||||||
if not login.is_existing:
|
if not login.is_existing:
|
||||||
login.lookup()
|
login.lookup()
|
||||||
|
@ -128,6 +139,13 @@ class RegisterSerializer(serializers.Serializer):
|
||||||
password1 = serializers.CharField(write_only=True)
|
password1 = serializers.CharField(write_only=True)
|
||||||
password2 = serializers.CharField(write_only=True)
|
password2 = serializers.CharField(write_only=True)
|
||||||
|
|
||||||
|
default_error_messages = {
|
||||||
|
'user_already_registered':
|
||||||
|
_('A user is already registered with this e-mail address.'),
|
||||||
|
'password_didnt_match':
|
||||||
|
_('The two password fields didn\'t match.')
|
||||||
|
}
|
||||||
|
|
||||||
def validate_username(self, username):
|
def validate_username(self, username):
|
||||||
username = get_adapter().clean_username(username)
|
username = get_adapter().clean_username(username)
|
||||||
return username
|
return username
|
||||||
|
@ -136,8 +154,7 @@ class RegisterSerializer(serializers.Serializer):
|
||||||
email = get_adapter().clean_email(email)
|
email = get_adapter().clean_email(email)
|
||||||
if allauth_settings.UNIQUE_EMAIL:
|
if allauth_settings.UNIQUE_EMAIL:
|
||||||
if email and email_address_exists(email):
|
if email and email_address_exists(email):
|
||||||
raise serializers.ValidationError(
|
self.fail('user_already_registered')
|
||||||
_("A user is already registered with this e-mail address."))
|
|
||||||
return email
|
return email
|
||||||
|
|
||||||
def validate_password1(self, password):
|
def validate_password1(self, password):
|
||||||
|
@ -145,7 +162,7 @@ class RegisterSerializer(serializers.Serializer):
|
||||||
|
|
||||||
def validate(self, data):
|
def validate(self, data):
|
||||||
if data['password1'] != data['password2']:
|
if data['password1'] != data['password2']:
|
||||||
raise serializers.ValidationError(_("The two password fields didn't match."))
|
self.fail('password_didnt_match')
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def custom_signup(self, request, user):
|
def custom_signup(self, request, user):
|
||||||
|
|
|
@ -21,14 +21,28 @@ class LoginSerializer(serializers.Serializer):
|
||||||
email = serializers.EmailField(required=False, allow_blank=True)
|
email = serializers.EmailField(required=False, allow_blank=True)
|
||||||
password = serializers.CharField(style={'input_type': 'password'})
|
password = serializers.CharField(style={'input_type': 'password'})
|
||||||
|
|
||||||
|
default_error_messages = {
|
||||||
|
'email_and_password_required':
|
||||||
|
_('Must include "email" and "password".'),
|
||||||
|
'username_and_password_required':
|
||||||
|
_('Must include "username" and "password".'),
|
||||||
|
'either_username_or_email_and_password_required':
|
||||||
|
_('Must include either "username" or "email" and "password".'),
|
||||||
|
'user_account_disabled':
|
||||||
|
_('User account is disabled.'),
|
||||||
|
'cannot_log_in':
|
||||||
|
_('Unable to log in with provided credentials.'),
|
||||||
|
'email_not_verified':
|
||||||
|
_('E-mail is not verified.'),
|
||||||
|
}
|
||||||
|
|
||||||
def _validate_email(self, email, password):
|
def _validate_email(self, email, password):
|
||||||
user = None
|
user = None
|
||||||
|
|
||||||
if email and password:
|
if email and password:
|
||||||
user = authenticate(email=email, password=password)
|
user = authenticate(email=email, password=password)
|
||||||
else:
|
else:
|
||||||
msg = _('Must include "email" and "password".')
|
self.fail('email_and_password_required')
|
||||||
raise exceptions.ValidationError(msg)
|
|
||||||
|
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
@ -38,8 +52,7 @@ class LoginSerializer(serializers.Serializer):
|
||||||
if username and password:
|
if username and password:
|
||||||
user = authenticate(username=username, password=password)
|
user = authenticate(username=username, password=password)
|
||||||
else:
|
else:
|
||||||
msg = _('Must include "username" and "password".')
|
self.fail('username_and_password_required')
|
||||||
raise exceptions.ValidationError(msg)
|
|
||||||
|
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
@ -51,8 +64,7 @@ class LoginSerializer(serializers.Serializer):
|
||||||
elif username and password:
|
elif username and password:
|
||||||
user = authenticate(username=username, password=password)
|
user = authenticate(username=username, password=password)
|
||||||
else:
|
else:
|
||||||
msg = _('Must include either "username" or "email" and "password".')
|
self.fail('either_username_or_email_and_password_required')
|
||||||
raise exceptions.ValidationError(msg)
|
|
||||||
|
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
@ -92,11 +104,9 @@ class LoginSerializer(serializers.Serializer):
|
||||||
# Did we get back an active user?
|
# Did we get back an active user?
|
||||||
if user:
|
if user:
|
||||||
if not user.is_active:
|
if not user.is_active:
|
||||||
msg = _('User account is disabled.')
|
self.fail('user_account_disabled')
|
||||||
raise exceptions.ValidationError(msg)
|
|
||||||
else:
|
else:
|
||||||
msg = _('Unable to log in with provided credentials.')
|
self.fail('cannot_log_in')
|
||||||
raise exceptions.ValidationError(msg)
|
|
||||||
|
|
||||||
# If required, is the email verified?
|
# If required, is the email verified?
|
||||||
if 'rest_auth.registration' in settings.INSTALLED_APPS:
|
if 'rest_auth.registration' in settings.INSTALLED_APPS:
|
||||||
|
@ -104,7 +114,7 @@ class LoginSerializer(serializers.Serializer):
|
||||||
if app_settings.EMAIL_VERIFICATION == app_settings.EmailVerificationMethod.MANDATORY:
|
if app_settings.EMAIL_VERIFICATION == app_settings.EmailVerificationMethod.MANDATORY:
|
||||||
email_address = user.emailaddress_set.get(email=user.email)
|
email_address = user.emailaddress_set.get(email=user.email)
|
||||||
if not email_address.verified:
|
if not email_address.verified:
|
||||||
raise serializers.ValidationError(_('E-mail is not verified.'))
|
self.fail('email_not_verified')
|
||||||
|
|
||||||
attrs['user'] = user
|
attrs['user'] = user
|
||||||
return attrs
|
return attrs
|
||||||
|
@ -230,6 +240,10 @@ class PasswordChangeSerializer(serializers.Serializer):
|
||||||
|
|
||||||
set_password_form_class = SetPasswordForm
|
set_password_form_class = SetPasswordForm
|
||||||
|
|
||||||
|
default_error_messages = {
|
||||||
|
'invalid_password': _('Invalid password.'),
|
||||||
|
}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
self.old_password_field_enabled = getattr(
|
self.old_password_field_enabled = getattr(
|
||||||
settings, 'OLD_PASSWORD_FIELD_ENABLED', False
|
settings, 'OLD_PASSWORD_FIELD_ENABLED', False
|
||||||
|
@ -253,7 +267,8 @@ class PasswordChangeSerializer(serializers.Serializer):
|
||||||
)
|
)
|
||||||
|
|
||||||
if all(invalid_password_conditions):
|
if all(invalid_password_conditions):
|
||||||
raise serializers.ValidationError('Invalid password')
|
self.fail('invalid_password')
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user