moderation.py 1.3 KB

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