added passwordResetHelper method, exposed defaultRegisterHelper

This commit is contained in:
charukiewicz 2020-02-05 23:45:02 -06:00
parent abdd844279
commit c35c2fddc2

View File

@ -113,6 +113,8 @@ module Yesod.Auth.Email
, defaultRegisterHandler , defaultRegisterHandler
, defaultForgotPasswordHandler , defaultForgotPasswordHandler
, defaultSetPasswordHandler , defaultSetPasswordHandler
-- * Default helpers
, defaultRegisterHelper
) where ) where
import Yesod.Auth import Yesod.Auth
@ -386,8 +388,33 @@ class ( YesodAuth site
setPasswordHandler = defaultSetPasswordHandler setPasswordHandler = defaultSetPasswordHandler
registerHelper :: Bool -> Bool -> Route Auth -> AuthHandler site TypedContent -- | Helper that controls what happens after a user registration
registerHelper = defaultRegisterHelper -- request is submitted. This method can be overridden to completely
-- customize what happens during the user registration process,
-- such as for handling additional fields in the registration form.
--
-- The default implementation is in terms of 'defaultRegisterHelper'.
--
-- @since: 1.6.9
registerHelper :: Route Auth
-- ^ Where to sent the user in the event
-- that registration fails
-> AuthHandler site TypedContent
registerHelper = defaultRegisterHelper False False
-- | Helper that controls what happens after a forgot password
-- request is submitted. As with `registerHelper`, this method can
-- be overridden to customize the behavior when a user attempts
-- to recover their password.
--
-- The default implementation is in terms of 'defaultRegisterHelper'.
--
-- @since: 1.6.9
passwordResetHelper :: Route Auth
-- ^ Where to sent the user in the event
-- that the password reset fails
-> AuthHandler site TypedContent
passwordResetHelper = defaultRegisterHelper True True
authEmail :: (YesodAuthEmail m) => AuthPlugin m authEmail :: (YesodAuthEmail m) => AuthPlugin m
authEmail = authEmail =
@ -521,8 +548,8 @@ parseRegister = withObject "email" (\obj -> do
return (email, pass)) return (email, pass))
defaultRegisterHelper :: YesodAuthEmail master defaultRegisterHelper :: YesodAuthEmail master
=> Bool -- ^ allow usernames? => Bool -- ^ Allow lookup via username in addition to email
-> Bool -- ^ forgot password? -> Bool -- ^ Set to `True` for forgot password flow, `False` for new account registration
-> Route Auth -> Route Auth
-> AuthHandler master TypedContent -> AuthHandler master TypedContent
defaultRegisterHelper allowUsername forgotPassword dest = do defaultRegisterHelper allowUsername forgotPassword dest = do
@ -553,7 +580,7 @@ defaultRegisterHelper allowUsername forgotPassword dest = do
_ -> Nothing _ -> Nothing
case eidentifier of case eidentifier of
Left route -> loginErrorMessageI dest route Left failMsg -> loginErrorMessageI dest failMsg
Right identifier -> do Right identifier -> do
mecreds <- getEmailCreds identifier mecreds <- getEmailCreds identifier
registerCreds <- registerCreds <-
@ -590,7 +617,7 @@ defaultRegisterHelper allowUsername forgotPassword dest = do
postRegisterR :: YesodAuthEmail master => AuthHandler master TypedContent postRegisterR :: YesodAuthEmail master => AuthHandler master TypedContent
postRegisterR = registerHelper False False registerR postRegisterR = registerHelper registerR
getForgotPasswordR :: YesodAuthEmail master => AuthHandler master Html getForgotPasswordR :: YesodAuthEmail master => AuthHandler master Html
getForgotPasswordR = forgotPasswordHandler getForgotPasswordR = forgotPasswordHandler
@ -634,7 +661,7 @@ defaultForgotPasswordHandler = do
} }
postForgotPasswordR :: YesodAuthEmail master => AuthHandler master TypedContent postForgotPasswordR :: YesodAuthEmail master => AuthHandler master TypedContent
postForgotPasswordR = registerHelper True True forgotPasswordR postForgotPasswordR = passwordResetHelper forgotPasswordR
getVerifyR :: YesodAuthEmail site getVerifyR :: YesodAuthEmail site
=> AuthEmailId site => AuthEmailId site