def METHOD_NAME(self, user):
    if not user.is_authenticated:
        return self.none()
    reservation_resources = Resource.objects.with_perm('can_access_reservation_comments', user)
    allowed_reservation_ids = Reservation.objects.filter(
        Q(resource__in=reservation_resources) | Q(user=user)
    ).values_list('id', flat=True)
    catering_resources = Resource.objects.with_perm('can_view_reservation_catering_orders', user)
    allowed_catering_order_ids = CateringOrder.objects.filter(
        Q(reservation__resource__in=catering_resources) | Q(reservation__user=user)
    ).values_list('id', flat=True)
    reservation_content_type = ContentType.objects.get_for_model(Reservation)
    catering_order_content_type = ContentType.objects.get_for_model(CateringOrder)
    return self.filter(
        Q(created_by=user) |
        (Q(content_type=reservation_content_type) & Q(object_id__in=allowed_reservation_ids)) |
        (Q(content_type=catering_order_content_type) & Q(object_id__in=allowed_catering_order_ids))
    )