user.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.contrib.auth import get_user_model
  2. from rest_framework import serializers
  3. from misago.acl import serialize_acl
  4. __ALL__ = ['AuthenticatedUserSerializer', 'AnonymousUserSerializer']
  5. class AuthenticatedUserSerializer(serializers.ModelSerializer):
  6. acl = serializers.SerializerMethodField()
  7. class Meta:
  8. model = get_user_model()
  9. fields = (
  10. 'id',
  11. 'username',
  12. 'slug',
  13. 'email',
  14. 'joined_on',
  15. 'is_hiding_presence',
  16. 'title',
  17. 'new_notifications',
  18. 'limits_private_thread_invites_to',
  19. 'unread_private_threads',
  20. 'sync_unread_private_threads',
  21. 'subscribe_to_started_threads',
  22. 'subscribe_to_replied_threads',
  23. 'threads',
  24. 'posts',
  25. 'acl')
  26. def get_acl(self, obj):
  27. return serialize_acl(obj)
  28. class AnonymousUserSerializer(serializers.Serializer):
  29. id = serializers.ReadOnlyField()
  30. acl = serializers.SerializerMethodField()
  31. def get_acl(self, obj):
  32. return serialize_acl(obj)