Merge pull request #1537 from kikaiteam/fix_forgot_pass_endpoint

AuthEmail: Fix forgot-password endpoint
This commit is contained in:
Michael Snoyman 2018-07-10 11:56:28 +03:00 committed by GitHub
commit b7a3385a89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 10 deletions

View File

@ -1,5 +1,8 @@
# ChangeLog for yesod-auth # ChangeLog for yesod-auth
## 1.6.4.1
* Email: Fix forgot-password endpoint [#1537](https://github.com/yesodweb/yesod/pull/1537)
## 1.6.4 ## 1.6.4
* Make `registerHelper` configurable [#1524](https://github.com/yesodweb/yesod/issues/1524) * Make `registerHelper` configurable [#1524](https://github.com/yesodweb/yesod/issues/1524)

View File

@ -518,10 +518,10 @@ parseRegister = withObject "email" (\obj -> do
registerHelper :: YesodAuthEmail master registerHelper :: YesodAuthEmail master
=> Bool -- ^ allow usernames? => Bool -- ^ allow usernames?
-> Bool -- ^ allow password? -> Bool -- ^ forgot password?
-> Route Auth -> Route Auth
-> AuthHandler master TypedContent -> AuthHandler master TypedContent
registerHelper allowUsername allowPassword dest = do registerHelper allowUsername forgotPassword dest = do
y <- getYesod y <- getYesod
checkCsrfHeaderOrParam defaultCsrfHeaderName defaultCsrfParamName checkCsrfHeaderOrParam defaultCsrfHeaderName defaultCsrfParamName
result <- runInputPostResult $ (,) result <- runInputPostResult $ (,)
@ -544,8 +544,8 @@ registerHelper allowUsername allowPassword dest = do
| allowUsername -> Right $ TS.strip x | allowUsername -> Right $ TS.strip x
| otherwise -> Left Msg.InvalidEmailAddress | otherwise -> Left Msg.InvalidEmailAddress
let mpass = case (allowPassword, creds) of let mpass = case (forgotPassword, creds) of
(True, Just (_, mp)) -> mp (False, Just (_, mp)) -> mp
_ -> Nothing _ -> Nothing
case eidentifier of case eidentifier of
@ -573,9 +573,10 @@ registerHelper allowUsername allowPassword dest = do
Nothing -> loginErrorMessageI dest (Msg.IdentifierNotFound identifier) Nothing -> loginErrorMessageI dest (Msg.IdentifierNotFound identifier)
Just creds@(_, False, _, _) -> sendConfirmationEmail creds Just creds@(_, False, _, _) -> sendConfirmationEmail creds
Just creds@(_, True, _, _) -> do Just creds@(_, True, _, _) -> do
case emailPreviouslyRegisteredResponse identifier of if forgotPassword then sendConfirmationEmail creds
Just response -> response else case emailPreviouslyRegisteredResponse identifier of
Nothing -> sendConfirmationEmail creds Just response -> response
Nothing -> sendConfirmationEmail creds
where sendConfirmationEmail (lid, _, verKey, email) = do where sendConfirmationEmail (lid, _, verKey, email) = do
render <- getUrlRender render <- getUrlRender
tp <- getRouteToParent tp <- getRouteToParent
@ -585,7 +586,7 @@ registerHelper allowUsername allowPassword dest = do
postRegisterR :: YesodAuthEmail master => AuthHandler master TypedContent postRegisterR :: YesodAuthEmail master => AuthHandler master TypedContent
postRegisterR = registerHelper False True registerR postRegisterR = registerHelper False False registerR
getForgotPasswordR :: YesodAuthEmail master => AuthHandler master Html getForgotPasswordR :: YesodAuthEmail master => AuthHandler master Html
getForgotPasswordR = forgotPasswordHandler getForgotPasswordR = forgotPasswordHandler
@ -629,7 +630,7 @@ defaultForgotPasswordHandler = do
} }
postForgotPasswordR :: YesodAuthEmail master => AuthHandler master TypedContent postForgotPasswordR :: YesodAuthEmail master => AuthHandler master TypedContent
postForgotPasswordR = registerHelper True False forgotPasswordR postForgotPasswordR = registerHelper True True forgotPasswordR
getVerifyR :: YesodAuthEmail site getVerifyR :: YesodAuthEmail site
=> AuthEmailId site => AuthEmailId site

View File

@ -1,5 +1,5 @@
name: yesod-auth name: yesod-auth
version: 1.6.4 version: 1.6.4.1
license: MIT license: MIT
license-file: LICENSE license-file: LICENSE
author: Michael Snoyman, Patrick Brisbin author: Michael Snoyman, Patrick Brisbin