mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-04 01:47:59 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			999 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			999 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from django.contrib.auth import authenticate
 | 
						|
from django.utils.translation import ugettext_lazy as _
 | 
						|
 | 
						|
from rest_framework import exceptions, serializers
 | 
						|
 | 
						|
 | 
						|
class AuthTokenSerializer(serializers.Serializer):
 | 
						|
    username = serializers.CharField()
 | 
						|
    password = serializers.CharField()
 | 
						|
 | 
						|
    def validate(self, attrs):
 | 
						|
        username = attrs.get('username')
 | 
						|
        password = attrs.get('password')
 | 
						|
 | 
						|
        if username and password:
 | 
						|
            user = authenticate(username=username, password=password)
 | 
						|
 | 
						|
            if user:
 | 
						|
                if not user.is_active:
 | 
						|
                    msg = _('User account is disabled.')
 | 
						|
                    raise exceptions.ValidationError(msg)
 | 
						|
            else:
 | 
						|
                msg = _('Unable to log in with provided credentials.')
 | 
						|
                raise exceptions.ValidationError(msg)
 | 
						|
        else:
 | 
						|
            msg = _('Must include "username" and "password"')
 | 
						|
            raise exceptions.ValidationError(msg)
 | 
						|
 | 
						|
        attrs['user'] = user
 | 
						|
        return attrs
 |