From b009f01eac24a726d4418e418c0426fd89a8b00b Mon Sep 17 00:00:00 2001 From: Hussain Khalil Date: Mon, 29 Jul 2024 17:25:19 -0400 Subject: [PATCH 1/2] Fix logic error causing some addresses to not appear --- .../Rules/FirewallRuleDrawer.utils.ts | 8 +++++--- packages/manager/src/features/Firewalls/shared.ts | 14 ++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRuleDrawer.utils.ts b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRuleDrawer.utils.ts index da8ce2458f1..e57bd284795 100644 --- a/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRuleDrawer.utils.ts +++ b/packages/manager/src/features/Firewalls/FirewallDetail/Rules/FirewallRuleDrawer.utils.ts @@ -6,12 +6,13 @@ import { parseCIDR, parse as parseIP } from 'ipaddr.js'; import { uniq } from 'ramda'; import { - FirewallOptionItem, allIPs, allIPv4, allIPv6, allowAllIPv4, allowAllIPv6, + allowNoneIPv4, + allowNoneIPv6, allowsAllIPs, predefinedFirewallFromRule, } from 'src/features/Firewalls/shared'; @@ -25,6 +26,7 @@ import type { FirewallRuleProtocol, FirewallRuleType, } from '@linode/api-v4/lib/firewalls'; +import type { FirewallOptionItem } from 'src/features/Firewalls/shared'; import type { ExtendedIP } from 'src/utilities/ipUtils'; export const IP_ERROR_MESSAGE = 'Must be a valid IPv4 or IPv6 range.'; @@ -172,11 +174,11 @@ export const getInitialAddressFormValue = ( return 'all'; } - if (allowAllIPv4(addresses)) { + if (allowAllIPv4(addresses) && allowNoneIPv6(addresses)) { return 'allIPv4'; } - if (allowAllIPv6(addresses)) { + if (allowAllIPv6(addresses) && allowNoneIPv4(addresses)) { return 'allIPv6'; } diff --git a/packages/manager/src/features/Firewalls/shared.ts b/packages/manager/src/features/Firewalls/shared.ts index c53ccaaefe9..5f372cd4a61 100644 --- a/packages/manager/src/features/Firewalls/shared.ts +++ b/packages/manager/src/features/Firewalls/shared.ts @@ -1,11 +1,11 @@ -import { Grants, Profile } from '@linode/api-v4'; -import { +import { truncateAndJoinList } from 'src/utilities/stringUtils'; + +import type { Grants, Profile } from '@linode/api-v4'; +import type { FirewallRuleProtocol, FirewallRuleType, } from '@linode/api-v4/lib/firewalls/types'; -import { truncateAndJoinList } from 'src/utilities/stringUtils'; - export type FirewallPreset = 'dns' | 'http' | 'https' | 'mysql' | 'ssh'; export interface FirewallOptionItem { @@ -198,6 +198,12 @@ export const allowAllIPv4 = (addresses: FirewallRuleType['addresses']) => export const allowAllIPv6 = (addresses: FirewallRuleType['addresses']) => addresses?.ipv6?.includes(allIPv6); +export const allowNoneIPv4 = (addresses: FirewallRuleType['addresses']) => + !addresses?.ipv4?.length; + +export const allowNoneIPv6 = (addresses: FirewallRuleType['addresses']) => + !addresses?.ipv6?.length; + export const generateRuleLabel = (ruleType?: FirewallPreset) => ruleType ? predefinedFirewalls[ruleType].label : 'Custom'; From f299b83b2353df19ca1b508c9741dd1d0b7060f7 Mon Sep 17 00:00:00 2001 From: Hussain Khalil Date: Mon, 29 Jul 2024 17:39:00 -0400 Subject: [PATCH 2/2] Added changeset: Sources not displaying correctly in Firewall Rule drawer --- packages/manager/.changeset/pr-10724-fixed-1722289139869.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-10724-fixed-1722289139869.md diff --git a/packages/manager/.changeset/pr-10724-fixed-1722289139869.md b/packages/manager/.changeset/pr-10724-fixed-1722289139869.md new file mode 100644 index 00000000000..4f9d94ba0d0 --- /dev/null +++ b/packages/manager/.changeset/pr-10724-fixed-1722289139869.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Fixed +--- + +Sources not displaying correctly in Firewall Rule drawer ([#10724](https://github.com/linode/manager/pull/10724))