From 2b2ee4d23ce6e2dde0497fd91b9df66ef3b3a094 Mon Sep 17 00:00:00 2001
From: Marco
Date: Thu, 30 Jul 2026 23:12:54 +0000
Subject: [PATCH] Gate order-list filters behind
CompanySettings.orderFilterEnabled
Co-Authored-By: Claude Sonnet 5
---
app/konto/bestellungen/page.tsx | 9 +++++++--
app/lib/payload.ts | 15 +++++++++++++++
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/app/konto/bestellungen/page.tsx b/app/konto/bestellungen/page.tsx
index 73f6388..c067048 100644
--- a/app/konto/bestellungen/page.tsx
+++ b/app/konto/bestellungen/page.tsx
@@ -11,6 +11,7 @@ import {
getCustomerOrderYears,
ORDER_STATUS_LABEL,
} from "../../lib/customerAuth";
+import { getOrderFilterEnabled } from "../../lib/payload";
import { OrderStatusBadge } from "../components/OrderStatusBadge";
import { PaymentStatusBadge } from "../components/PaymentStatusBadge";
import { LogoutButton } from "../components/LogoutButton";
@@ -47,7 +48,11 @@ export default async function KontoBestellungenPage({
const session = await getSessionCustomer();
if (!session) redirect("/konto/login");
- const { status, paymentStatus, year } = await searchParams;
+ const orderFilterEnabled = await getOrderFilterEnabled();
+ const rawSearchParams = await searchParams;
+ const status = orderFilterEnabled ? rawSearchParams.status : undefined;
+ const paymentStatus = orderFilterEnabled ? rawSearchParams.paymentStatus : undefined;
+ const year = orderFilterEnabled ? rawSearchParams.year : undefined;
const [orders, availableYears] = await Promise.all([
getCustomerOrders(session.token, session.customer.id, true, { status, paymentStatus, year }),
@@ -65,7 +70,7 @@ export default async function KontoBestellungenPage({
Eingeloggt als {session.customer.email} (Kundennummer {session.customer.customerNumber})
- {availableYears.length > 0 && (
+ {orderFilterEnabled && availableYears.length > 0 && (
diff --git a/app/lib/payload.ts b/app/lib/payload.ts
index 6b08013..a51bc6b 100644
--- a/app/lib/payload.ts
+++ b/app/lib/payload.ts
@@ -1070,6 +1070,21 @@ export async function getBlogFilterEnabled(): Promise {
return data.docs?.[0]?.blogFilterEnabled ?? false;
}
+// Same pattern — gates /konto/bestellungen's status/paymentStatus/year filters.
+export async function getOrderFilterEnabled(): Promise {
+ const params = new URLSearchParams({ "where[tenant.slug][equals]": TENANT_SLUG, limit: "1" });
+ const res = await fetch(`${PAYLOAD_URL}/api/company-settings?${params}`, {
+ headers: { "x-order-service-secret": process.env.ORDER_SERVICE_SECRET || "" },
+ next: { revalidate: 60 },
+ });
+ if (!res.ok) {
+ console.error(`getOrderFilterEnabled: Payload returned ${res.status} ${res.statusText}`);
+ return false;
+ }
+ const data: { docs?: { orderFilterEnabled?: boolean }[] } = await res.json();
+ return data.docs?.[0]?.orderFilterEnabled ?? false;
+}
+
export type SeoSettings = {
defaultTitle: string | null;
titleTemplate: string | null;