From 6df4ea4d69533281295844e3a7f999209a04a4c6 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Sun, 5 Mar 2023 22:37:34 +1000 Subject: [PATCH] Cert creation fixes --- .../Common/DomainNamesField.tsx | 36 +++++++++++++------ .../modals/CertificateCreateModal/DNSForm.tsx | 3 +- .../CertificateCreateModal/HTTPForm.tsx | 4 ++- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/frontend/src/modals/CertificateCreateModal/Common/DomainNamesField.tsx b/frontend/src/modals/CertificateCreateModal/Common/DomainNamesField.tsx index c567cb7..3895eb3 100644 --- a/frontend/src/modals/CertificateCreateModal/Common/DomainNamesField.tsx +++ b/frontend/src/modals/CertificateCreateModal/Common/DomainNamesField.tsx @@ -14,12 +14,14 @@ interface SelectOption extends OptionBase { } interface DomainNamesFieldProps { maxDomains?: number; - isWildcardSupported?: boolean; + isWildcardPermitted?: boolean; + dnsProviderWildcardSupported?: boolean; onChange?: (i: string[]) => any; } function DomainNamesField({ maxDomains, - isWildcardSupported, + isWildcardPermitted, + dnsProviderWildcardSupported, onChange, }: DomainNamesFieldProps) { const { values, setFieldValue } = useFormikContext(); @@ -45,7 +47,10 @@ function DomainNamesField({ } // Prevent wildcards - if (!isWildcardSupported && dom.indexOf("*") !== -1) { + if ( + (!isWildcardPermitted || !dnsProviderWildcardSupported) && + dom.indexOf("*") !== -1 + ) { return false; } @@ -71,6 +76,18 @@ function DomainNamesField({ setFieldValue("domainNames", doms); }; + let helperTexts: string[] = []; + if (maxDomains) { + helperTexts.push( + intl.formatMessage({ id: "domain_names.max" }, { count: maxDomains }), + ); + } + if (!isWildcardPermitted) { + helperTexts.push(intl.formatMessage({ id: "wildcards-not-permitted" })); + } else if (!dnsProviderWildcardSupported) { + helperTexts.push(intl.formatMessage({ id: "wildcards-not-supported" })); + } + return ( {({ field, form }: any) => ( @@ -91,14 +108,11 @@ function DomainNamesField({ isMulti placeholder="example.com" /> - {maxDomains ? ( - - {intl.formatMessage( - { id: "domain_names.max" }, - { count: maxDomains }, - )} - - ) : null} + {helperTexts.length + ? helperTexts.map((i) => { + return {i}; + }) + : null} {form.errors.domainNames} )} diff --git a/frontend/src/modals/CertificateCreateModal/DNSForm.tsx b/frontend/src/modals/CertificateCreateModal/DNSForm.tsx index e47087d..2f55b4d 100644 --- a/frontend/src/modals/CertificateCreateModal/DNSForm.tsx +++ b/frontend/src/modals/CertificateCreateModal/DNSForm.tsx @@ -23,7 +23,8 @@ function DNSForm() { diff --git a/frontend/src/modals/CertificateCreateModal/HTTPForm.tsx b/frontend/src/modals/CertificateCreateModal/HTTPForm.tsx index 1fdd921..f2cb118 100644 --- a/frontend/src/modals/CertificateCreateModal/HTTPForm.tsx +++ b/frontend/src/modals/CertificateCreateModal/HTTPForm.tsx @@ -22,7 +22,9 @@ function HTTPForm() {