Something went wrong on our end
-
Erwan Rouchet authoredErwan Rouchet authored
serializers.py 1.66 KiB
from rest_framework import serializers
from arkindex.users.models import OAuthCredentials, User
class OAuthCredentialsSerializer(serializers.ModelSerializer):
provider_display_name = serializers.CharField(source='provider_class.display_name')
class Meta:
model = OAuthCredentials
fields = (
'id',
'provider_name',
'provider_display_name',
'provider_url',
'account_name',
)
class OAuthProviderClassSerializer(serializers.Serializer):
name = serializers.CharField(source='__name__')
display_name = serializers.CharField()
default_url = serializers.URLField(source='url')
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = (
'id',
'email',
'password',
'is_admin',
)
extra_kwargs = {
'id': {'read_only': True},
'email': {'read_only': True},
'password': {'write_only': True},
'is_admin': {'read_only': True},
}
def update(self, instance, validated_data):
if 'password' in validated_data:
instance.set_password(validated_data.pop('password'))
return super().update(instance, validated_data)
class NewUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = (
'email',
)
def create(self, validated_data):
return User.objects.create_user(validated_data['email'])
class EmailLoginSerializer(serializers.Serializer):
email = serializers.EmailField()
password = serializers.CharField(write_only=True)