def validate_category(self, value): try: self.category_cache = Category.objects.get( pk=value, tree_id=trees_map.get_tree_id_for_root(THREADS_ROOT)) can_see = can_see_category(self.user, self.category_cache) can_browse = can_browse_category(self.user, self.category_cache) if not (self.category_cache.level and can_see and can_browse): raise PermissionDenied(_("Selected category is invalid.")) allow_start_thread(self.user, self.category_cache) except PermissionDenied as e: raise serializers.ValidationError(e.args[0]) except Category.DoesNotExist: raise serializers.ValidationError( _("Selected category doesn't exist or you don't have permission to browse it." ))
def validate_category(self, value): try: self.category_cache = Category.objects.get( pk=value, tree_id=trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) ) can_see = can_see_category(self.user, self.category_cache) can_browse = can_browse_category(self.user, self.category_cache) if not (self.category_cache.level and can_see and can_browse): raise PermissionDenied(_("Selected category is invalid.")) allow_start_thread(self.user, self.category_cache) except PermissionDenied as e: raise serializers.ValidationError(e.args[0]) except Category.DoesNotExist: raise serializers.ValidationError( _("Selected category doesn't exist or you don't have permission to browse it."))
def validate_category(user, category_id, allow_root=False): try: category = Category.objects.get( tree_id=CATEGORIES_TREE_ID, id=category_id, ) except Category.DoesNotExist: category = None # Skip ACL validation for root category? if allow_root and category and not category.level: return category if not category or not can_see_category(user, category): raise ValidationError(_("Requested category could not be found.")) if not can_browse_category(user, category): raise ValidationError( _("You don't have permission to access this category.")) return category
def validate_category(user, category_id, allow_root=False): try: threads_tree_id = trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) category = Category.objects.get( tree_id=threads_tree_id, id=category_id, ) except Category.DoesNotExist: category = None # Skip ACL validation for root category? if allow_root and category and not category.level: return category if not category or not can_see_category(user, category): raise ValidationError(_("Requested category could not be found.")) if not can_browse_category(user, category): raise ValidationError(_("You don't have permission to access this category.")) return category
def validate_category(user, category_id, allow_root=False): try: threads_tree_id = trees_map.get_tree_id_for_root(THREADS_ROOT_NAME) category = Category.objects.get( tree_id=threads_tree_id, id=category_id, ) except Category.DoesNotExist: category = None # Skip ACL validation for root category? if allow_root and category and not category.level: return category if not category or not can_see_category(user, category): raise ValidationError(_("Requested category could not be found.")) if not can_browse_category(user, category): raise ValidationError(_("You don't have permission to access this category.")) return category