From ebd4b9504b8b9a9472ec18b0fdd3bdbc342e86e5 Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Thu, 9 Nov 2023 15:13:05 -0800 Subject: [PATCH] ui: status: Display reject-origin-domains config (#422) For #380 Signed-off-by: James Hillyerd --- ui/src/Data/ServerConfig.elm | 3 +++ ui/src/Page/Status.elm | 30 +++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/ui/src/Data/ServerConfig.elm b/ui/src/Data/ServerConfig.elm index 474804d..00545c8 100644 --- a/ui/src/Data/ServerConfig.elm +++ b/ui/src/Data/ServerConfig.elm @@ -27,6 +27,7 @@ type alias SmtpConfig = , defaultStore : Bool , storeDomains : Maybe (List String) , discardDomains : Maybe (List String) + , rejectOriginDomains : Maybe (List String) } @@ -70,6 +71,7 @@ smtpConfigDecoder = |> P.required "default-store" D.bool |> P.required "store-domains" (D.nullable (D.list D.string)) |> P.required "discard-domains" (D.nullable (D.list D.string)) + |> P.required "reject-origin-domains" (D.nullable (D.list D.string)) encodeSmtpConfig : SmtpConfig -> E.Value @@ -82,6 +84,7 @@ encodeSmtpConfig r = , ( "default-store", E.bool r.defaultStore ) , ( "store-domains", maybe (E.list E.string) r.storeDomains ) , ( "discard-domains", maybe (E.list E.string) r.discardDomains ) + , ( "reject-origin-domains", maybe (E.list E.string) r.rejectOriginDomains ) ] diff --git a/ui/src/Page/Status.elm b/ui/src/Page/Status.elm index 0f28929..5f8a4a2 100644 --- a/ui/src/Page/Status.elm +++ b/ui/src/Page/Status.elm @@ -275,7 +275,8 @@ configPanel maybeConfig = , textEntry "SMTP Listener" config.smtpConfig.addr , textEntry "POP3 Listener" config.pop3Listener , textEntry "HTTP Listener" config.webListener - , textEntry "Accept Policy" (acceptPolicy config) + , textEntry "Origin Policy" (originPolicy config) + , textEntry "Destination Policy" (acceptPolicy config) , textEntry "Store Policy" (storePolicy config) , textEntry "Store Type" config.storageConfig.storeType , textEntry "Message Cap" (mailboxCap config) @@ -286,7 +287,7 @@ configPanel maybeConfig = acceptPolicy : ServerConfig -> String acceptPolicy config = if config.smtpConfig.defaultAccept then - "All domains" + "Allow all domains" ++ (case config.smtpConfig.rejectDomains of Nothing -> "" @@ -299,7 +300,7 @@ acceptPolicy config = ) else - "No domains" + "Reject all domains" ++ (case config.smtpConfig.acceptDomains of Nothing -> "" @@ -308,14 +309,29 @@ acceptPolicy config = "" Just domains -> - ", except: " ++ String.join ", " domains + ", except to: " ++ String.join ", " domains ) +originPolicy : ServerConfig -> String +originPolicy config = + "Allow all domains" + ++ (case config.smtpConfig.rejectOriginDomains of + Nothing -> + "" + + Just [] -> + "" + + Just domains -> + ", except from: " ++ String.join ", " domains + ) + + storePolicy : ServerConfig -> String storePolicy config = if config.smtpConfig.defaultStore then - "All domains" + "All destination domains" ++ (case config.smtpConfig.discardDomains of Nothing -> "" @@ -324,11 +340,11 @@ storePolicy config = "" Just domains -> - ", except: " ++ String.join ", " domains + ", except to: " ++ String.join ", " domains ) else - "No domains" + "No destination domains" ++ (case config.smtpConfig.storeDomains of Nothing -> ""