moderation.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. class ModerateAvatarSerializer(serializers.ModelSerializer):
  7. class Meta:
  8. model = UserModel
  9. fields = [
  10. 'is_avatar_locked',
  11. 'avatar_lock_user_message',
  12. 'avatar_lock_staff_message',
  13. ]
  14. class ModerateSignatureSerializer(serializers.ModelSerializer):
  15. class Meta:
  16. model = UserModel
  17. fields = [
  18. 'signature',
  19. 'is_signature_locked',
  20. 'signature_lock_user_message',
  21. 'signature_lock_staff_message',
  22. ]
  23. def validate_signature(self, value):
  24. length_limit = settings.signature_length_max
  25. if len(value) > length_limit:
  26. raise serializers.ValidationError(
  27. ungettext(
  28. "Signature can't be longer than %(limit)s character.",
  29. "Signature can't be longer than %(limit)s characters.",
  30. length_limit,
  31. ) % {'limit': length_limit}
  32. )
  33. return value