funkwhale/api/funkwhale_api/users/serializers.py

60 wiersze
1.5 KiB
Python
Czysty Zwykły widok Historia

2018-05-06 09:30:41 +00:00
from django.conf import settings
2018-05-06 09:30:41 +00:00
from rest_framework import serializers
from rest_auth.serializers import PasswordResetSerializer as PRS
from funkwhale_api.activity import serializers as activity_serializers
from . import models
class UserActivitySerializer(activity_serializers.ModelSerializer):
type = serializers.SerializerMethodField()
2018-06-09 13:36:16 +00:00
name = serializers.CharField(source="username")
local_id = serializers.CharField(source="username")
class Meta:
model = models.User
2018-06-09 13:36:16 +00:00
fields = ["id", "local_id", "name", "type"]
def get_type(self, obj):
2018-06-09 13:36:16 +00:00
return "Person"
2018-02-22 21:01:51 +00:00
class UserBasicSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
2018-06-09 13:36:16 +00:00
fields = ["id", "username", "name", "date_joined"]
2018-02-22 21:01:51 +00:00
2018-03-03 10:20:21 +00:00
class UserWriteSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
2018-06-09 13:36:16 +00:00
fields = ["name", "privacy_level"]
2018-03-03 10:20:21 +00:00
class UserReadSerializer(serializers.ModelSerializer):
permissions = serializers.SerializerMethodField()
class Meta:
model = models.User
fields = [
2018-06-09 13:36:16 +00:00
"id",
"username",
"name",
"email",
"is_staff",
"is_superuser",
"permissions",
"date_joined",
"privacy_level",
]
def get_permissions(self, o):
return o.get_permissions()
2018-05-06 09:30:41 +00:00
class PasswordResetSerializer(PRS):
def get_email_options(self):
2018-06-09 13:36:16 +00:00
return {"extra_email_context": {"funkwhale_url": settings.FUNKWHALE_URL}}