protect.py 531 B

1234567891011121314
  1. from . import PostingEndpoint, PostingMiddleware
  2. class ProtectMiddleware(PostingMiddleware):
  3. def use_this_middleware(self):
  4. return self.mode == PostingEndpoint.EDIT and 'protect' in self.request.data
  5. def post_save(self, serializer):
  6. if self.thread.category.acl['can_protect_posts']:
  7. try:
  8. self.post.is_protected = bool(self.request.data['protect'])
  9. self.post.update_fields.append('is_protected')
  10. except (TypeError, ValueError):
  11. pass