forked from github/plane
* feat: user display name for the entire system * feat: update issue activity to remove emails * dev: update to display name wherever assignees__email and member__email * dev: update display names on issue activity and the user script * dev: update display_name function to generate display_name from email * dev: add email for test purpose * dev: set default display name for the user * dev: add migration script and default value * dev: annotate with assignees_id * dev: return assignees id * dev: display name for the profile * dev: project members endpoint * dev: url update * dev: trailing / * dev: update workspace member serializer * fix: activity for assignees
90 lines
2.1 KiB
Python
90 lines
2.1 KiB
Python
# Third party imports
|
|
from rest_framework import serializers
|
|
|
|
# Module import
|
|
from .base import BaseSerializer
|
|
from plane.db.models import User
|
|
|
|
|
|
class UserSerializer(BaseSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = "__all__"
|
|
read_only_fields = [
|
|
"id",
|
|
"created_at",
|
|
"updated_at",
|
|
"is_superuser",
|
|
"is_staff",
|
|
"last_active",
|
|
"last_login_time",
|
|
"last_logout_time",
|
|
"last_login_ip",
|
|
"last_logout_ip",
|
|
"last_login_uagent",
|
|
"token_updated_at",
|
|
"is_onboarded",
|
|
"is_bot",
|
|
]
|
|
extra_kwargs = {"password": {"write_only": True}}
|
|
|
|
# If the user has already filled first name or last name then he is onboarded
|
|
def get_is_onboarded(self, obj):
|
|
return bool(obj.first_name) or bool(obj.last_name)
|
|
|
|
|
|
class UserLiteSerializer(BaseSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = [
|
|
"id",
|
|
"first_name",
|
|
"last_name",
|
|
"avatar",
|
|
"is_bot",
|
|
"display_name",
|
|
]
|
|
read_only_fields = [
|
|
"id",
|
|
"is_bot",
|
|
]
|
|
|
|
|
|
class UserAdminLiteSerializer(BaseSerializer):
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = [
|
|
"id",
|
|
"first_name",
|
|
"last_name",
|
|
"avatar",
|
|
"is_bot",
|
|
"display_name",
|
|
"email",
|
|
]
|
|
read_only_fields = [
|
|
"id",
|
|
"is_bot",
|
|
]
|
|
|
|
|
|
class ChangePasswordSerializer(serializers.Serializer):
|
|
model = User
|
|
|
|
"""
|
|
Serializer for password change endpoint.
|
|
"""
|
|
old_password = serializers.CharField(required=True)
|
|
new_password = serializers.CharField(required=True)
|
|
|
|
|
|
class ResetPasswordSerializer(serializers.Serializer):
|
|
model = User
|
|
|
|
"""
|
|
Serializer for password change endpoint.
|
|
"""
|
|
new_password = serializers.CharField(required=True)
|
|
confirm_password = serializers.CharField(required=True)
|