1234567891011121314151617181920212223 |
- from rest_framework import serializers
- from . import PostingEndpoint, PostingMiddleware
- class ProtectMiddleware(PostingMiddleware):
- def use_this_middleware(self):
- return self.mode == PostingEndpoint.EDIT
- def get_serializer(self):
- return ProtectSerializer(data=self.request.data)
- def post_save(self, serializer):
- if self.thread.category.acl["can_protect_posts"]:
- try:
- self.post.is_protected = serializer.validated_data.get("protect", False)
- self.post.update_fields.append("is_protected")
- except (TypeError, ValueError):
- pass
- class ProtectSerializer(serializers.Serializer):
- protect = serializers.BooleanField(required=False, default=False)
|