moderation.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. message = ngettext(
  28. "Signature can't be longer than %(limit)s character.",
  29. "Signature can't be longer than %(limit)s characters.",
  30. length_limit,
  31. )
  32. raise serializers.ValidationError(message % {"limit": length_limit})
  33. return value