mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
58 lines
1.3 KiB
Python
58 lines
1.3 KiB
Python
from rest_framework.serializers import (
|
|
ModelSerializer,
|
|
Serializer,
|
|
CharField,
|
|
SerializerMethodField,
|
|
)
|
|
from rest_framework.authtoken.models import Token
|
|
from rest_framework_simplejwt.tokens import RefreshToken
|
|
|
|
|
|
from plane.db.models import User
|
|
|
|
|
|
class UserSerializer(ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = "__all__"
|
|
extra_kwargs = {"password": {"write_only": True}}
|
|
|
|
|
|
class ChangePasswordSerializer(Serializer):
|
|
model = User
|
|
|
|
"""
|
|
Serializer for password change endpoint.
|
|
"""
|
|
old_password = CharField(required=True)
|
|
new_password = CharField(required=True)
|
|
|
|
|
|
class ResetPasswordSerializer(Serializer):
|
|
model = User
|
|
|
|
"""
|
|
Serializer for password change endpoint.
|
|
"""
|
|
new_password = CharField(required=True)
|
|
confirm_password = CharField(required=True)
|
|
|
|
|
|
class TokenSerializer(ModelSerializer):
|
|
|
|
user = UserSerializer()
|
|
access_token = SerializerMethodField()
|
|
refresh_token = SerializerMethodField()
|
|
|
|
def get_access_token(self, obj):
|
|
refresh_token = RefreshToken.for_user(obj.user)
|
|
return str(refresh_token.access_token)
|
|
|
|
def get_refresh_token(self, obj):
|
|
refresh_token = RefreshToken.for_user(obj.user)
|
|
return str(refresh_token)
|
|
|
|
class Meta:
|
|
model = Token
|
|
fields = "__all__"
|