yesod-auth 1.6.8.1 → 1.6.9
raw patch · 3 files changed
+46/−10 lines, 3 files
Files
- ChangeLog.md +5/−0
- Yesod/Auth/Email.hs +40/−9
- yesod-auth.cabal +1/−1
ChangeLog.md view
@@ -1,5 +1,10 @@ # ChangeLog for yesod-auth +## 1.6.9++* Added `registerHelper` and `passwordResetHelper` methods to the `YesodAuthEmail` class, allowing for customizing behavior for user registration and forgot password requests [#1660](https://github.com/yesodweb/yesod/pull/1660)+* Exposed `defaultRegisterHelper` as default implementation for the above methods+ ## 1.6.8.1 * Email: Fix typo in `defaultEmailLoginHandler` template [#1605](https://github.com/yesodweb/yesod/pull/1605)
Yesod/Auth/Email.hs view
@@ -113,6 +113,8 @@ , defaultRegisterHandler , defaultForgotPasswordHandler , defaultSetPasswordHandler+ -- * Default helpers+ , defaultRegisterHelper ) where import Yesod.Auth@@ -385,6 +387,35 @@ -> AuthHandler site TypedContent setPasswordHandler = defaultSetPasswordHandler ++ -- | Helper that controls what happens after a user registration+ -- 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 = AuthPlugin "email" dispatch emailLoginHandler@@ -516,12 +547,12 @@ pass <- obj .:? "password" return (email, pass)) -registerHelper :: YesodAuthEmail master- => Bool -- ^ allow usernames?- -> Bool -- ^ forgot password?- -> Route Auth- -> AuthHandler master TypedContent-registerHelper allowUsername forgotPassword dest = do+defaultRegisterHelper :: YesodAuthEmail master+ => Bool -- ^ Allow lookup via username in addition to email+ -> Bool -- ^ Set to `True` for forgot password flow, `False` for new account registration+ -> Route Auth+ -> AuthHandler master TypedContent+defaultRegisterHelper allowUsername forgotPassword dest = do y <- getYesod checkCsrfHeaderOrParam defaultCsrfHeaderName defaultCsrfParamName result <- runInputPostResult $ (,)@@ -549,7 +580,7 @@ _ -> Nothing case eidentifier of- Left route -> loginErrorMessageI dest route+ Left failMsg -> loginErrorMessageI dest failMsg Right identifier -> do mecreds <- getEmailCreds identifier registerCreds <-@@ -586,7 +617,7 @@ postRegisterR :: YesodAuthEmail master => AuthHandler master TypedContent-postRegisterR = registerHelper False False registerR+postRegisterR = registerHelper registerR getForgotPasswordR :: YesodAuthEmail master => AuthHandler master Html getForgotPasswordR = forgotPasswordHandler@@ -630,7 +661,7 @@ } postForgotPasswordR :: YesodAuthEmail master => AuthHandler master TypedContent-postForgotPasswordR = registerHelper True True forgotPasswordR+postForgotPasswordR = passwordResetHelper forgotPasswordR getVerifyR :: YesodAuthEmail site => AuthEmailId site
yesod-auth.cabal view
@@ -1,5 +1,5 @@ name: yesod-auth-version: 1.6.8.1+version: 1.6.9 license: MIT license-file: LICENSE author: Michael Snoyman, Patrick Brisbin