From 276a9f13219b34b050a7e3676062e14cfb95d7a1 Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Mon, 6 Feb 2017 16:15:38 -0500 Subject: [PATCH 1/5] Add and export defaultEmailLoginHandler --- yesod-auth/Yesod/Auth/Email.hs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index 0f4bd8fd..874c4fee 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -106,6 +106,7 @@ module Yesod.Auth.Email , loginLinkKey , setLoginLinkKey -- * Default handlers + , defaultEmailLoginHandler , defaultRegisterHandler , defaultForgotPasswordHandler , defaultSetPasswordHandler @@ -290,6 +291,17 @@ class ( YesodAuth site normalizeEmailAddress :: site -> Text -> Text normalizeEmailAddress _ = TS.toLower + -- | Handler called to render the login page. + -- The default works fine, but you may want to override it in + -- order to have a different DOM. + -- + -- Default: 'defaultEmailLoginHandler'. + -- + -- @since: 1.2.6 + emailLoginHandler :: YesodAuthEmail master => (Route Auth -> Route master) -> WidgetT master IO () + emailLoginHandler = defaultEmailLoginHandler + + -- | Handler called to render the registration page. The -- default works fine, but you may want to override it in -- order to have a different DOM. @@ -346,8 +358,11 @@ authEmail = getRegisterR :: YesodAuthEmail master => HandlerT Auth (HandlerT master IO) Html getRegisterR = registerHandler -emailLoginHandler :: YesodAuthEmail master => (Route Auth -> Route master) -> WidgetT master IO () -emailLoginHandler toParent = do +-- | Default implementation of 'emailLoginHandler'. +-- +-- @since 1.2.6 +defaultEmailLoginHandler :: YesodAuthEmail master => (Route Auth -> Route master) -> WidgetT master IO () +defaultEmailLoginHandler toParent = do (widget, enctype) <- liftWidgetT $ generateFormPost loginForm [whamlet| @@ -402,6 +417,7 @@ emailLoginHandler toParent = do langs <- languages master <- getYesod return $ renderAuthMessage master langs msg + -- | Default implementation of 'registerHandler'. -- -- @since 1.2.6 From c78ae95b3a21f8b9a1aef2112ad817425e2ade8c Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Mon, 6 Feb 2017 17:20:55 -0500 Subject: [PATCH 2/5] Fix email auth module --- yesod-auth/Yesod/Auth/Email.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index 874c4fee..020a1be0 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -298,7 +298,7 @@ class ( YesodAuth site -- Default: 'defaultEmailLoginHandler'. -- -- @since: 1.2.6 - emailLoginHandler :: YesodAuthEmail master => (Route Auth -> Route master) -> WidgetT master IO () + emailLoginHandler :: (Route Auth -> Route site) -> WidgetT site IO () emailLoginHandler = defaultEmailLoginHandler @@ -534,7 +534,7 @@ defaultForgotPasswordHandler = do where forgotPasswordForm extra = do (emailRes, emailView) <- mreq emailField emailSettings Nothing - + let forgotPasswordRes = ForgotPasswordForm <$> emailRes let widget = do [whamlet| From c5ddf559371f6485a74406d0869793b901373e8e Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Sat, 18 Feb 2017 14:52:23 -0500 Subject: [PATCH 3/5] Update emailLoginHandler 'since' version --- yesod-auth/Yesod/Auth/Email.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index 020a1be0..f52e7c99 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -297,7 +297,7 @@ class ( YesodAuth site -- -- Default: 'defaultEmailLoginHandler'. -- - -- @since: 1.2.6 + -- @since 1.4.11 emailLoginHandler :: (Route Auth -> Route site) -> WidgetT site IO () emailLoginHandler = defaultEmailLoginHandler From ea5e1cca265c8496bc4fafd2cfd3a27909b3a8d8 Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Sat, 18 Feb 2017 18:28:53 -0500 Subject: [PATCH 4/5] Update emailLoginHandler 'since' version --- yesod-auth/Yesod/Auth/Email.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yesod-auth/Yesod/Auth/Email.hs b/yesod-auth/Yesod/Auth/Email.hs index f52e7c99..aa76231a 100644 --- a/yesod-auth/Yesod/Auth/Email.hs +++ b/yesod-auth/Yesod/Auth/Email.hs @@ -297,7 +297,7 @@ class ( YesodAuth site -- -- Default: 'defaultEmailLoginHandler'. -- - -- @since 1.4.11 + -- @since 1.4.17 emailLoginHandler :: (Route Auth -> Route site) -> WidgetT site IO () emailLoginHandler = defaultEmailLoginHandler @@ -360,7 +360,7 @@ getRegisterR = registerHandler -- | Default implementation of 'emailLoginHandler'. -- --- @since 1.2.6 +-- @since 1.4.17 defaultEmailLoginHandler :: YesodAuthEmail master => (Route Auth -> Route master) -> WidgetT master IO () defaultEmailLoginHandler toParent = do (widget, enctype) <- liftWidgetT $ generateFormPost loginForm From 9014192c66e90ba971a0a95decfe288b515772e7 Mon Sep 17 00:00:00 2001 From: "Daniel Campoverde [alx741]" Date: Sat, 18 Feb 2017 18:31:05 -0500 Subject: [PATCH 5/5] Update changelog --- yesod-auth/ChangeLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/yesod-auth/ChangeLog.md b/yesod-auth/ChangeLog.md index 9f56492c..27ae545c 100644 --- a/yesod-auth/ChangeLog.md +++ b/yesod-auth/ChangeLog.md @@ -3,6 +3,7 @@ * Add Show instance for user credentials `Creds` * Export pid type for identifying plugin * Fix warnings +* Allow for a custom Email Login DOM with `emailLoginHandler` ## 1.4.16