OnlineJudge/account/serializers.py

47 lines
1.8 KiB
Python
Raw Normal View History

# coding=utf-8
from rest_framework import serializers
2016-09-25 06:07:45 +00:00
from utils.serializers import DateTimeTZField
2016-10-29 18:17:35 +00:00
from .models import User, AdminType
class UserLoginSerializer(serializers.Serializer):
username = serializers.CharField(max_length=30)
password = serializers.CharField(max_length=30)
2016-10-29 18:17:35 +00:00
tfa_code = serializers.CharField(min_length=6, max_length=6, required=False, allow_null=True)
2015-08-03 10:45:26 +00:00
class UserRegisterSerializer(serializers.Serializer):
username = serializers.CharField(max_length=30)
password = serializers.CharField(max_length=30, min_length=6)
email = serializers.EmailField(max_length=254)
captcha = serializers.CharField(max_length=4, min_length=4)
2015-08-03 10:45:26 +00:00
class UserChangePasswordSerializer(serializers.Serializer):
2015-08-16 04:14:56 +00:00
old_password = serializers.CharField()
new_password = serializers.CharField(max_length=30, min_length=6)
2015-09-10 07:59:48 +00:00
captcha = serializers.CharField(max_length=4, min_length=4)
class UserSerializer(serializers.ModelSerializer):
create_time = DateTimeTZField()
last_login = DateTimeTZField()
class Meta:
model = User
2016-10-29 18:17:35 +00:00
fields = ["id", "username", "real_name", "email", "admin_type",
"create_time", "last_login", "two_factor_auth", "open_api", "is_disabled"]
class EditUserSerializer(serializers.Serializer):
id = serializers.IntegerField()
username = serializers.CharField(max_length=30)
real_name = serializers.CharField(max_length=30)
password = serializers.CharField(max_length=30, min_length=6, required=False, default=None)
email = serializers.EmailField(max_length=254)
2016-10-29 18:17:35 +00:00
admin_type = serializers.ChoiceField(choices=(AdminType.REGULAR_USER, AdminType.ADMIN, AdminType.SUPER_ADMIN))
open_api = serializers.BooleanField()
two_factor_auth = serializers.BooleanField()
is_disabled = serializers.BooleanField()