diff --git a/Yesod/Helpers/Auth2.hs b/Yesod/Helpers/Auth2.hs index a3a6cfe6..616cb434 100644 --- a/Yesod/Helpers/Auth2.hs +++ b/Yesod/Helpers/Auth2.hs @@ -47,9 +47,13 @@ data Creds m = Creds class Yesod m => YesodAuth m where type AuthId m - -- | Default destination on successful login or logout, if no other + -- | Default destination on successful login, if no other -- destination exists. - defaultDest :: m -> Route m + loginDest :: m -> Route m + + -- | Default destination on successful logout, if no other + -- destination exists. + logoutDest :: m -> Route m getAuthId :: Creds m -> GHandler s m (Maybe (AuthId m)) @@ -93,7 +97,7 @@ setCreds doRedirects creds = do if doRedirects then do setMessage $ string "You are now logged in" - redirect RedirectTemporary $ defaultDest y + redirect RedirectTemporary $ loginDest y else return () getCheckR :: YesodAuth m => GHandler Auth m RepHtmlJson @@ -128,7 +132,7 @@ postLogoutR :: YesodAuth m => GHandler Auth m () postLogoutR = do y <- getYesod deleteSession credsKey - redirectUltDest RedirectTemporary $ defaultDest y + redirectUltDest RedirectTemporary $ logoutDest y handlePluginR :: YesodAuth m => String -> [String] -> GHandler Auth m () handlePluginR plugin pieces = do diff --git a/Yesod/Helpers/Auth2/Email.hs b/Yesod/Helpers/Auth2/Email.hs index d1574bd5..3c4e5e82 100644 --- a/Yesod/Helpers/Auth2/Email.hs +++ b/Yesod/Helpers/Auth2/Email.hs @@ -228,7 +228,7 @@ postPasswordR = do setPassword aid salted setMessage $ string "Password updated" y <- getYesod - redirect RedirectTemporary $ defaultDest y + redirect RedirectTemporary $ loginDest y saltLength :: Int saltLength = 5 diff --git a/auth2.hs b/auth2.hs index 54b2e99c..cc6067c3 100644 --- a/auth2.hs +++ b/auth2.hs @@ -29,7 +29,8 @@ mkYesod "A2" [$parseRoutes| instance Yesod A2 where approot _ = "http://localhost:3000" instance YesodAuth A2 where type AuthId A2 = String - defaultDest _ = AuthR CheckR + loginDest _ = AuthR CheckR + logoutDest _ = AuthR CheckR getAuthId = return . Just . credsIdent showAuthId = const id readAuthId = const Just