1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

ui: status: Display reject-origin-domains config (#422)

For #380

Signed-off-by: James Hillyerd <james@hillyerd.com>
This commit is contained in:
James Hillyerd
2023-11-09 15:13:05 -08:00
committed by GitHub
parent 1d102a68b8
commit ebd4b9504b
2 changed files with 26 additions and 7 deletions

View File

@@ -27,6 +27,7 @@ type alias SmtpConfig =
, defaultStore : Bool , defaultStore : Bool
, storeDomains : Maybe (List String) , storeDomains : Maybe (List String)
, discardDomains : Maybe (List String) , discardDomains : Maybe (List String)
, rejectOriginDomains : Maybe (List String)
} }
@@ -70,6 +71,7 @@ smtpConfigDecoder =
|> P.required "default-store" D.bool |> P.required "default-store" D.bool
|> P.required "store-domains" (D.nullable (D.list D.string)) |> P.required "store-domains" (D.nullable (D.list D.string))
|> P.required "discard-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 encodeSmtpConfig : SmtpConfig -> E.Value
@@ -82,6 +84,7 @@ encodeSmtpConfig r =
, ( "default-store", E.bool r.defaultStore ) , ( "default-store", E.bool r.defaultStore )
, ( "store-domains", maybe (E.list E.string) r.storeDomains ) , ( "store-domains", maybe (E.list E.string) r.storeDomains )
, ( "discard-domains", maybe (E.list E.string) r.discardDomains ) , ( "discard-domains", maybe (E.list E.string) r.discardDomains )
, ( "reject-origin-domains", maybe (E.list E.string) r.rejectOriginDomains )
] ]

View File

@@ -275,7 +275,8 @@ configPanel maybeConfig =
, textEntry "SMTP Listener" config.smtpConfig.addr , textEntry "SMTP Listener" config.smtpConfig.addr
, textEntry "POP3 Listener" config.pop3Listener , textEntry "POP3 Listener" config.pop3Listener
, textEntry "HTTP Listener" config.webListener , 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 Policy" (storePolicy config)
, textEntry "Store Type" config.storageConfig.storeType , textEntry "Store Type" config.storageConfig.storeType
, textEntry "Message Cap" (mailboxCap config) , textEntry "Message Cap" (mailboxCap config)
@@ -286,7 +287,7 @@ configPanel maybeConfig =
acceptPolicy : ServerConfig -> String acceptPolicy : ServerConfig -> String
acceptPolicy config = acceptPolicy config =
if config.smtpConfig.defaultAccept then if config.smtpConfig.defaultAccept then
"All domains" "Allow all domains"
++ (case config.smtpConfig.rejectDomains of ++ (case config.smtpConfig.rejectDomains of
Nothing -> Nothing ->
"" ""
@@ -299,7 +300,7 @@ acceptPolicy config =
) )
else else
"No domains" "Reject all domains"
++ (case config.smtpConfig.acceptDomains of ++ (case config.smtpConfig.acceptDomains of
Nothing -> Nothing ->
"" ""
@@ -308,14 +309,29 @@ acceptPolicy config =
"" ""
Just domains -> 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 : ServerConfig -> String
storePolicy config = storePolicy config =
if config.smtpConfig.defaultStore then if config.smtpConfig.defaultStore then
"All domains" "All destination domains"
++ (case config.smtpConfig.discardDomains of ++ (case config.smtpConfig.discardDomains of
Nothing -> Nothing ->
"" ""
@@ -324,11 +340,11 @@ storePolicy config =
"" ""
Just domains -> Just domains ->
", except: " ++ String.join ", " domains ", except to: " ++ String.join ", " domains
) )
else else
"No domains" "No destination domains"
++ (case config.smtpConfig.storeDomains of ++ (case config.smtpConfig.storeDomains of
Nothing -> Nothing ->
"" ""