fixed regression introduced
This commit is contained in:
@@ -1,28 +1,82 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from . import models
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
class CustomUserSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = models.CustomUser
|
||||
fields = ('email', 'full_name', 'role', 'is_active')
|
||||
|
||||
|
||||
class CustomUserReadSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
model = models.CustomUser
|
||||
fields = ('email', 'full_name', 'role', 'is_active', 'provider')
|
||||
|
||||
|
||||
class CustomUserWriteSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
model = models.CustomUser
|
||||
fields = ('email', 'full_name', 'role', 'password', 'provider')
|
||||
|
||||
|
||||
class CreatorSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
model = models.CustomUser
|
||||
fields = ('email',)
|
||||
|
||||
|
||||
class ChangePasswordSerializer(serializers.ModelSerializer):
|
||||
password = serializers.CharField(write_only=True, required=True)
|
||||
password2 = serializers.CharField(write_only=True, required=True)
|
||||
old_password = serializers.CharField(write_only=True, required=True)
|
||||
|
||||
class Meta:
|
||||
model = models.CustomUser
|
||||
fields = ('old_password', 'password', 'password2')
|
||||
|
||||
def validate(self, attrs):
|
||||
if attrs['password'] != attrs['password2']:
|
||||
raise serializers.ValidationError({"password": "Password fields didn't match."})
|
||||
|
||||
return attrs
|
||||
|
||||
def validate_old_password(self, value):
|
||||
user = self.context['request'].user
|
||||
if not user.check_password(value):
|
||||
raise serializers.ValidationError({"old_password": "Old password is not correct"})
|
||||
return value
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
|
||||
instance.set_password(validated_data['password'])
|
||||
instance.save()
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
class UpdateUserSerializer(serializers.ModelSerializer):
|
||||
email = serializers.EmailField(required=True)
|
||||
|
||||
class Meta:
|
||||
model = models.CustomUser
|
||||
fields = ('full_name', 'email')
|
||||
|
||||
def validate_email(self, value):
|
||||
user = self.context['request'].user
|
||||
if models.CustomUser.objects.exclude(pk=user.pk).filter(email=value).exists():
|
||||
raise serializers.ValidationError({"email": "This email is already in use."})
|
||||
return value
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
for key, value in validated_data.items():
|
||||
instance.__dict__[key] = value
|
||||
|
||||
instance.save()
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
Reference in New Issue
Block a user