def get_category(self, request, categories, **kwargs): for category in categories: if category.pk == int(kwargs['category_id']): if category.special_role: raise Http404() allow_see_category(request.user, category) allow_browse_category(request.user, category) validate_slug(category, kwargs['category_slug']) return category else: raise Http404()
def get_category(self, request, categories, **kwargs): for category in categories: if category.pk == int(kwargs['pk']): if not category.special_role: # don't check permissions for non-special category allow_see_category(request.user, category) allow_browse_category(request.user, category) if 'slug' in kwargs: validate_slug(category, kwargs['slug']) return category raise Http404()
def read_threads(user, pk): user.lock() category_id = get_int_or_404(pk) threads_tree_id = trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) category = get_object_or_404(Category, id=category_id, tree_id=threads_tree_id) if category.level: allow_see_category(user, category) allow_browse_category(user, category) read_category(user, category)
def get_category(self, request, categories, **kwargs): for category in categories: if category.pk == int(kwargs['pk']): if not category.level: raise Http404() allow_see_category(request.user, category) allow_browse_category(request.user, category) validate_slug(category, kwargs['slug']) return category else: raise Http404()
def read(self, request): if request.query_params.get('category'): category_id = get_int_or_404(request.query_params.get('category')) category = get_object_or_404(Category.objects, id=category_id, tree_id=self.TREE_ID, ) allow_see_category(request.user, category) allow_browse_category(request.user, category) else: category = Category.objects.root_category() read_category(request.user, category) return Response({'detail': 'ok'})
def get_category(self, request): if request.query_params.get('category'): category_id = get_int_or_404(request.query_params['category']) category = get_object_or_404( Category.objects.select_related('parent'), tree_id=CATEGORIES_TREE_ID, id=category_id, ) allow_see_category(request.user, category) allow_browse_category(request.user, category) return category else: return Category.objects.root_category()
def read_threads(user, pk): user.lock() category_id = get_int_or_404(pk) threads_tree_id = trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) category = get_object_or_404(Category, id=category_id, tree_id=threads_tree_id, ) if category.level: allow_see_category(user, category) allow_browse_category(user, category) read_category(user, category)
def read(self, request): if request.query_params.get('category'): threads_tree_id = trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) category_id = get_int_or_404(request.query_params.get('category')) category = get_object_or_404(Category, id=category_id, tree_id=threads_tree_id, ) allow_see_category(request.user, category) allow_browse_category(request.user, category) else: category = Category.objects.root_category() read_category(request.user, category) return Response({'detail': 'ok'})
def patch_move(request, thread, value): if thread.acl.get('can_move'): category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) moderation.move_thread(request.user, thread, new_category) return {'category': CategorySerializer(new_category).data} else: raise PermissionDenied( _("You don't have permission to move this thread."))
def patch_move(request, thread, value): allow_move_thread(request.user, thread) category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) allow_start_thread(request.user, new_category) if new_category == thread.category: raise PermissionDenied(_("You can't move thread to the category it's already in.")) moderation.move_thread(request, thread, new_category) return {'category': CategorySerializer(new_category).data}
def get_category(self, request, categories): if request.query_params.get('category'): category_id = get_int_or_404(request.query_params['category']) for category in categories: if category.pk == category_id: if category.level: break else: raise Http404() # disallow root category access else: raise Http404() allow_see_category(request.user, category) allow_browse_category(request.user, category) return category else: return categories[0]
def patch_move(request, thread, value): allow_move_thread(request.user, thread) category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) allow_start_thread(request.user, new_category) if new_category == thread.category: raise ValidationError(_("You can't move thread to the category it's already in.")) moderation.move_thread(request, thread, new_category) return {'category': CategorySerializer(new_category).data}
def patch_move(request, thread, value): if thread.acl.get('can_move'): category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) allow_start_thread(request.user, new_category) moderation.move_thread(request.user, thread, new_category) return {'category': CategorySerializer(new_category).data} else: raise PermissionDenied( _("You don't have permission to move this thread."))