WIP: DKIM is working fine. Still some validations to do.

This commit is contained in:
Philippe Pittoli 2024-03-11 23:24:46 +01:00
parent 1c080cc948
commit 5be520281f
2 changed files with 15 additions and 2 deletions

View File

@ -30,6 +30,7 @@ import Data.Tuple (Tuple(..))
import Data.ArrayBuffer.Types (ArrayBuffer) import Data.ArrayBuffer.Types (ArrayBuffer)
import Data.Array.NonEmpty as NonEmpty import Data.Array.NonEmpty as NonEmpty
import Data.Either (Either(..)) import Data.Either (Either(..))
import Data.String.CodePoints as CP
-- import Data.Foldable as Foldable -- import Data.Foldable as Foldable
import Data.Maybe (Maybe(..), fromMaybe, maybe) import Data.Maybe (Maybe(..), fromMaybe, maybe)
import Effect.Aff.Class (class MonadAff) import Effect.Aff.Class (class MonadAff)
@ -517,6 +518,9 @@ handleAction = case _ of
Nothing -> H.raise $ Log $ ErrorLog $ "RR not found (RR " <> show rr_id <> ")" Nothing -> H.raise $ Log $ ErrorLog $ "RR not found (RR " <> show rr_id <> ")"
Just rr -> do Just rr -> do
H.modify_ _ { _currentRR = rr } H.modify_ _ { _currentRR = rr }
_ <- case rr.rrtype of
"DKIM" -> H.modify_ _ { dkim = fromMaybe DKIM.emptyDKIMRR rr.dkim }
_ -> pure unit
H.modify_ _ { rr_modal = UpdateRRModal } H.modify_ _ { rr_modal = UpdateRRModal }
-- | Each time a "new RR" button is clicked, the form resets. -- | Each time a "new RR" button is clicked, the form resets.
@ -562,6 +566,7 @@ handleAction = case _ of
H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR } H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR }
-- TODO: should the code design change? Would the code be simplified by working only on _currentRR.dkim? -- TODO: should the code design change? Would the code be simplified by working only on _currentRR.dkim?
-- Since _currentRR.dkim isn't modified directly, it is copied from `State`.
_ <- case t of _ <- case t of
DKIM -> H.modify_ \state -> state { _currentRR { dkim = Just state.dkim } } DKIM -> H.modify_ \state -> state { _currentRR { dkim = Just state.dkim } }
_ -> pure unit _ -> pure unit
@ -598,6 +603,12 @@ handleAction = case _ of
-- In case the `name` part of the resource record is empty, consider the name to be the domain itself. -- In case the `name` part of the resource record is empty, consider the name to be the domain itself.
H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR } H.modify_ \s -> s { _currentRR = replace_name s._domain s._currentRR }
-- Since _currentRR.dkim isn't modified directly, it is copied from `State`.
state0 <- H.get
_ <- case state0._currentRR.rrtype of
"DKIM" -> H.modify_ _ { _currentRR { dkim = Just state0.dkim } }
_ -> pure unit
state <- H.get state <- H.get
case Validation.validation state._currentRR of case Validation.validation state._currentRR of
Left actual_errors -> do Left actual_errors -> do
@ -779,7 +790,7 @@ render_resources records
tag_mx = tags [tag "MX"] tag_mx = tags [tag "MX"]
tag_srv = tags [tag "SRV"] tag_srv = tags [tag "SRV"]
tag_spf = tags [tag "SPF"] tag_spf = tags [tag "SPF"]
tag_dkim = tags [tag "DKIM", tag "work in progress 😂"] tag_dkim = tags [tag "DKIM"]
tag_basic_ro = tags [tag_ro "Basic RRs", tag_ro "read only"] tag_basic_ro = tags [tag_ro "Basic RRs", tag_ro "read only"]
rr_box :: HH.HTML w Action -- box title (type of data) rr_box :: HH.HTML w Action -- box title (type of data)
@ -862,7 +873,8 @@ render_resources records
-- , HH.td_ [ Bulma.p $ maybe "(default)" id rr.v ] -- For now, version isn't displayed. Assume DKIM1. -- , HH.td_ [ Bulma.p $ maybe "(default)" id rr.v ] -- For now, version isn't displayed. Assume DKIM1.
HH.td_ [ Bulma.p $ maybe "" DKIM.show_hashing_algorithm dkim.h ] HH.td_ [ Bulma.p $ maybe "" DKIM.show_hashing_algorithm dkim.h ]
, HH.td_ [ Bulma.p $ maybe "" DKIM.show_signature_algorithm dkim.k ] , HH.td_ [ Bulma.p $ maybe "" DKIM.show_signature_algorithm dkim.k ]
, HH.td_ [ Bulma.p dkim.p ] , HH.td_ [ Bulma.p $ CP.take 5 dkim.p ]
, HH.td_ [ Bulma.p $ fromMaybe "" dkim.n ]
, if rr.readonly , if rr.readonly
then HH.td_ [ Bulma.btn_readonly ] then HH.td_ [ Bulma.btn_readonly ]
else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ] else HH.td_ [ Bulma.btn_modify (CreateUpdateRRModal rr.rrid) ]

View File

@ -145,6 +145,7 @@ dkim_table_header
, HH.th_ [ HH.text "Hash algo" ] , HH.th_ [ HH.text "Hash algo" ]
, HH.th_ [ HH.text "Signature algo" ] , HH.th_ [ HH.text "Signature algo" ]
, HH.th_ [ HH.text "Public Key" ] , HH.th_ [ HH.text "Public Key" ]
, HH.th_ [ HH.text "Notes" ]
, HH.th_ [ HH.text "" ] , HH.th_ [ HH.text "" ]
, HH.th_ [ HH.text "" ] , HH.th_ [ HH.text "" ]
] ]