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__"
|