moderation.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.contrib.auth import get_user_model
  2. from django.utils.translation import ngettext
  3. from rest_framework import serializers
  4. from ...conf import settings
  5. User = get_user_model()
  6. __all__ = ["ModerateAvatarSerializer", "ModerateSignatureSerializer"]
  7. class ModerateAvatarSerializer(serializers.ModelSerializer):
  8. class Meta:
  9. model = User
  10. fields = [
  11. "is_avatar_locked",
  12. "avatar_lock_user_message",
  13. "avatar_lock_staff_message",
  14. ]
  15. class ModerateSignatureSerializer(serializers.ModelSerializer):
  16. class Meta:
  17. model = User
  18. fields = [
  19. "signature",
  20. "is_signature_locked",
  21. "signature_lock_user_message",
  22. "signature_lock_staff_message",
  23. ]
  24. def validate_signature(self, value):
  25. length_limit = settings.signature_length_max
  26. if len(value) > length_limit:
  27. raise serializers.ValidationError(
  28. ngettext(
  29. "Signature can't be longer than %(limit)s character.",
  30. "Signature can't be longer than %(limit)s characters.",
  31. length_limit,
  32. )
  33. % {"limit": length_limit}
  34. )
  35. return value