From dccf101554d3d56197c30e917619c9b501d77dca Mon Sep 17 00:00:00 2001 From: Owen Date: Wed, 24 Dec 2025 10:49:18 -0500 Subject: [PATCH] Allow all in country in blueprints Fixes #2163 --- server/lib/blueprints/types.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/server/lib/blueprints/types.ts b/server/lib/blueprints/types.ts index cbd2553f..650d5b18 100644 --- a/server/lib/blueprints/types.ts +++ b/server/lib/blueprints/types.ts @@ -111,32 +111,30 @@ export const RuleSchema = z .refine( (rule) => { if (rule.match === "country") { - // Check if it's a valid 2-letter country code - return /^[A-Z]{2}$/.test(rule.value); + // Check if it's a valid 2-letter country code or "ALL" + return /^[A-Z]{2}$/.test(rule.value) || rule.value === "ALL"; } return true; }, { path: ["value"], message: - "Value must be a 2-letter country code when match is 'country'" + "Value must be a 2-letter country code or 'ALL' when match is 'country'" } ) .refine( (rule) => { if (rule.match === "asn") { - // Check if it's either AS format or just a number + // Check if it's either AS format or "ALL" const asNumberPattern = /^AS\d+$/i; - const isASFormat = asNumberPattern.test(rule.value); - const isNumeric = /^\d+$/.test(rule.value); - return isASFormat || isNumeric; + return asNumberPattern.test(rule.value) || rule.value === "ALL"; } return true; }, { path: ["value"], message: - "Value must be either 'AS' format or a number when match is 'asn'" + "Value must be 'AS' format or 'ALL' when match is 'asn'" } );