Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. from django.utils.translation import gettext as _
  2. from django.contrib.auth import authenticate
  3. from rest_framework import serializers
  4.  
  5. from .models import User
  6.  
  7.  
  8. class UserSerializer(serializers.ModelSerializer):
  9.  
  10.     class Meta:
  11.         model = User
  12.         # fields = '__all__
  13.         fields = ('username', 'email', 'password')
  14.  
  15.  
  16. class UserSerializerWithToken(serializers.ModelSerializer):
  17.     pass
  18.  
  19.  
  20. class CustomAuthTokenSerializer(serializers.Serializer):
  21.     user = serializers.CharField(label=_("User"))
  22.  
  23.     def __init__(self, *args, **kwargs):
  24.         super(CustomAuthTokenSerializer, self).__init__(*args, **kwargs)
  25.         self.fields['pass'] = serializers.CharField(
  26.             label=_("Pass"),
  27.             style={'input_type': 'password'},
  28.             trim_whitespace=False
  29.         )
  30.  
  31.     def validate(self, attrs):
  32.         username = attrs.get('user')
  33.         password = attrs.get('pass')
  34.  
  35.         if username and password:
  36.             user = authenticate(
  37.                 request=self.context.get('request'),
  38.                 username=username,
  39.                 password=password
  40.             )
  41.  
  42.             if not user:
  43.                 msg = _('Unable to log in with provided credentials.')
  44.                 raise serializers.ValidationError(msg, code='authorization')
  45.         else:
  46.             msg = _('Must include "username" and "password".')
  47.             raise serializers.ValidationError(msg, code='authorization')
  48.  
  49.         attrs['user'] = user
  50.         return attrs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement