moderation.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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', 'is_signature_locked', 'signature_lock_user_message',
  23. 'signature_lock_staff_message'
  24. ]
  25. def validate_signature(self, value):
  26. length_limit = settings.signature_length_max
  27. if len(value) > length_limit:
  28. raise serializers.ValidationError(
  29. ungettext(
  30. "Signature can't be longer than %(limit)s character.",
  31. "Signature can't be longer than %(limit)s characters.", length_limit
  32. ) % {'limit': length_limit}
  33. )
  34. return value