123456789101112131415161718192021222324252627 |
- from rest_framework import serializers
- from misago.threads import moderation
- from . import PostingEndpoint, PostingMiddleware
- class HideMiddleware(PostingMiddleware):
- def use_this_middleware(self):
- return self.mode == PostingEndpoint.START
- def get_serializer(self):
- return HideSerializer(data=self.request.data)
- def post_save(self, serializer):
- if self.thread.category.acl['can_hide_threads']:
- if serializer.validated_data.get('hide'):
- moderation.hide_thread(self.request, self.thread)
- self.thread.update_all = True
- self.thread.save(update_fields=['is_hidden'])
- self.thread.category.synchronize()
- self.thread.category.update_all = True
- class HideSerializer(serializers.Serializer):
- hide = serializers.BooleanField(required=False, default=False)
|