Merge pull request #526 from qrilka/clear-creds

Added clearCreds symmetric to setCreds function
This commit is contained in:
Michael Snoyman 2013-04-09 01:24:16 -07:00
commit 2bbd0d16a2

View File

@ -18,6 +18,7 @@ module Yesod.Auth
-- * Plugin interface
, Creds (..)
, setCreds
, clearCreds
-- * User functions
, defaultMaybeAuthId
, maybeAuth
@ -163,7 +164,11 @@ mkYesodSub "Auth"
/page/#Text/STRINGS PluginR
|]
setCreds :: YesodAuth master => Bool -> Creds master -> GHandler sub master ()
-- | Sets user credentials for the session after checking them with authentication backends.
setCreds :: YesodAuth master
=> Bool -- ^ if HTTP redirects should be done
-> Creds master -- ^ new credentials
-> GHandler sub master ()
setCreds doRedirects creds = do
y <- getYesod
maid <- getAuthId creds
@ -184,6 +189,17 @@ $newline never
onLogin
redirectUltDest $ loginDest y
-- | Clears current user credentials for the session.
clearCreds :: YesodAuth master
=> Bool -- ^ if HTTP redirect to 'logoutDest' should be done
-> GHandler sub master ()
clearCreds doRedirects = do
y <- getYesod
deleteSession credsKey
when doRedirects $ do
onLogout
redirectUltDest $ logoutDest y
getCheckR :: YesodAuth master => GHandler Auth master RepHtmlJson
getCheckR = do
creds <- maybeAuthId
@ -219,11 +235,7 @@ getLogoutR = do
setUltDestReferer' >> redirectToPost (tm LogoutR)
postLogoutR :: YesodAuth master => GHandler Auth master ()
postLogoutR = do
y <- getYesod
deleteSession credsKey
onLogout
redirectUltDest $ logoutDest y
postLogoutR = clearCreds True
handlePluginR :: YesodAuth master => Text -> [Text] -> GHandler Auth master ()
handlePluginR plugin pieces = do