moderation.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from rest_framework import serializers
  2. from django.contrib.auth import get_user_model
  3. from django.utils.translation import ngettext
  4. from misago.conf import settings
  5. UserModel = get_user_model()
  6. __all__ = ["ModerateAvatarSerializer", "ModerateSignatureSerializer"]
  7. class ModerateAvatarSerializer(serializers.ModelSerializer):
  8. class Meta:
  9. model = UserModel
  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 = UserModel
  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