Fix the page reload problem not routing for the right page.

beta
Philippe Pittoli 2024-02-20 02:10:20 +01:00
parent 529c2edae7
commit bcc76c8378
1 changed files with 12 additions and 11 deletions

View File

@ -43,6 +43,8 @@
-- | -- |
-- | TODO: authd administrative page -- | TODO: authd administrative page
-- | -- |
-- | TODO: application-level heartbeat to avoid disconnections.
-- |
-- | Untested features: -- | Untested features:
-- | - mail recovery, password change -- | - mail recovery, password change
module App.Container where module App.Container where
@ -284,6 +286,15 @@ handleAction = case _ of
Log message -> H.tell _log unit $ AppLog.Log message Log message -> H.tell _log unit $ AppLog.Log message
AuthenticateToAuthd v -> case v of
Left token -> do
handleAction $ Log $ SimpleLog "[🤖] authenticate to authd with a token!"
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkAuthByToken { token }
H.tell _ws_auth unit (WS.ToSend message)
Right (Tuple login password) -> do
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkLogin { login, password }
H.tell _ws_auth unit (WS.ToSend message)
AuthenticateToDNSManager -> do AuthenticateToDNSManager -> do
state <- H.get state <- H.get
case state.token of case state.token of
@ -335,7 +346,6 @@ handleAction = case _ of
state <- H.get state <- H.get
H.tell _dli unit (DomainListInterface.ProvideState state.store_DomainListInterface_state) H.tell _dli unit (DomainListInterface.ProvideState state.store_DomainListInterface_state)
-- TODO: depending on the current page, we should provide the received message to different components.
AuthenticationDaemonEvent ev -> case ev of AuthenticationDaemonEvent ev -> case ev of
WS.MessageReceived (Tuple _ message) -> do WS.MessageReceived (Tuple _ message) -> do
handleAction $ DecodeAuthMessage message handleAction $ DecodeAuthMessage message
@ -448,7 +458,7 @@ handleAction = case _ of
-- The authentication was a success! -- The authentication was a success!
(AuthD.GotToken msg) -> do (AuthD.GotToken msg) -> do
handleAction $ Log $ SimpleLog $ "[🎉] Authenticated to authd!" handleAction $ Log $ SimpleLog $ "[🎉] Authenticated to authd!"
H.modify_ _ { token = Just msg.token, current_page = DomainList } H.modify_ _ { token = Just msg.token }
sessionstorage <- H.liftEffect $ Window.sessionStorage =<< HTML.window sessionstorage <- H.liftEffect $ Window.sessionStorage =<< HTML.window
_ <- H.liftEffect $ Storage.setItem "user-authd-token" msg.token sessionstorage _ <- H.liftEffect $ Storage.setItem "user-authd-token" msg.token sessionstorage
@ -456,15 +466,6 @@ handleAction = case _ of
handleAction AuthenticateToDNSManager handleAction AuthenticateToDNSManager
pure unit pure unit
AuthenticateToAuthd v -> case v of
Left token -> do
handleAction $ Log $ SimpleLog "[🤖] authenticate to authd with a token!"
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkAuthByToken { token }
H.tell _ws_auth unit (WS.ToSend message)
Right (Tuple login password) -> do
message <- H.liftEffect $ AuthD.serialize $ AuthD.MkLogin { login, password }
H.tell _ws_auth unit (WS.ToSend message)
-- | Send a received authentication daemon message `AuthD.AnswerMessage` to a component. -- | Send a received authentication daemon message `AuthD.AnswerMessage` to a component.
DispatchAuthDaemonMessage message -> do DispatchAuthDaemonMessage message -> do
{ current_page } <- H.get { current_page } <- H.get