From 4963f562fef4f9a941aebb7a1f77ea457397bfd0 Mon Sep 17 00:00:00 2001 From: Alex Kardos Date: Thu, 3 Mar 2016 20:47:13 -0700 Subject: [PATCH] Converted yesod login screen to monadic form The form helpers weren't being used which caused the CSRF tokens to not be present. This also allows for a bit more flexability and cleans up the code as well. --- yesod-auth/Yesod/Auth/Email.hs | 72 ++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 20 deletions(-) diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index 416d4df2..67b45bab 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -108,6 +108,7 @@ data EmailCreds site = EmailCreds } data UserForm = UserForm { email :: Text } +data UserLoginForm = UserLoginForm { loginEmail :: Text, loginPassword :: Text } class ( YesodAuth site , PathPiece (AuthEmailId site) @@ -255,31 +256,62 @@ class ( YesodAuth site -> AuthHandler site TypedContent setPasswordHandler = defaultSetPasswordHandler - -authEmail :: YesodAuthEmail m => AuthPlugin m +authEmail :: (YesodAuthEmail m) => AuthPlugin m authEmail = AuthPlugin "email" dispatch login where - login tm = + login toParent = do + ((_,widget),enctype) <- liftWidgetT $ runFormPost loginForm + [whamlet| -
- - - - -
_{Msg.Email} - - -
_{Msg.Password} - - -
-