typemixins.py 725 B

1234567891011121314151617181920212223242526
  1. from django.http import Http404
  2. from django.shortcuts import get_object_or_404
  3. from misago.acl import add_acl
  4. from misago.categories.models import CATEGORIES_TREE_ID
  5. from misago.threads.permissions.threads import allow_see_thread
  6. from misago.threads.models import Thread
  7. class ThreadMixin(object):
  8. def get_thread(self, request, pk):
  9. thread = get_object_or_404(Thread.objects.select_related('category', 'starter'), pk=pk)
  10. if thread.category.tree_id != CATEGORIES_TREE_ID:
  11. raise Http404()
  12. add_acl(request.user, thread)
  13. add_acl(request.user, thread.category)
  14. allow_see_thread(request.user, thread)
  15. return thread
  16. class PrivateThreadMixin(object):
  17. pass