moderationqueue.py 999 B

1234567891011121314151617181920212223242526272829
  1. from . import PostingEndpoint, PostingMiddleware
  2. from ....categories import PRIVATE_THREADS_ROOT_NAME
  3. class ModerationQueueMiddleware(PostingMiddleware):
  4. def use_this_middleware(self):
  5. try:
  6. tree_name = self.tree_name
  7. except AttributeError:
  8. tree_name = self.thread.category.thread_type.root_name
  9. return tree_name != PRIVATE_THREADS_ROOT_NAME
  10. def save(self, serializer):
  11. if self.mode == PostingEndpoint.START:
  12. self.post.is_unapproved = self.thread.category.acl[
  13. "require_threads_approval"
  14. ]
  15. if self.mode == PostingEndpoint.REPLY:
  16. self.post.is_unapproved = self.thread.category.acl[
  17. "require_replies_approval"
  18. ]
  19. if self.mode == PostingEndpoint.EDIT:
  20. self.post.is_unapproved = self.thread.category.acl["require_edits_approval"]
  21. if self.post.is_unapproved:
  22. self.post.update_fields.append("is_unapproved")