close.py 583 B

1234567891011121314151617
  1. from . import PostingEndpoint, PostingMiddleware
  2. from misago.threads import moderation
  3. class CloseMiddleware(PostingMiddleware):
  4. def use_this_middleware(self):
  5. return self.mode == PostingEndpoint.START and 'close' in self.request.data
  6. def post_save(self, serializer):
  7. if self.thread.category.acl['can_close_threads']:
  8. try:
  9. close = bool(self.request.data['close'])
  10. except (TypeError, ValueError):
  11. close = False
  12. if close:
  13. moderation.close_thread(self.request, self.thread)