Merge pull request #526 from qrilka/clear-creds
Added clearCreds symmetric to setCreds function
This commit is contained in:
commit
2bbd0d16a2
@ -18,6 +18,7 @@ module Yesod.Auth
|
|||||||
-- * Plugin interface
|
-- * Plugin interface
|
||||||
, Creds (..)
|
, Creds (..)
|
||||||
, setCreds
|
, setCreds
|
||||||
|
, clearCreds
|
||||||
-- * User functions
|
-- * User functions
|
||||||
, defaultMaybeAuthId
|
, defaultMaybeAuthId
|
||||||
, maybeAuth
|
, maybeAuth
|
||||||
@ -163,7 +164,11 @@ mkYesodSub "Auth"
|
|||||||
/page/#Text/STRINGS PluginR
|
/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
|
setCreds doRedirects creds = do
|
||||||
y <- getYesod
|
y <- getYesod
|
||||||
maid <- getAuthId creds
|
maid <- getAuthId creds
|
||||||
@ -184,6 +189,17 @@ $newline never
|
|||||||
onLogin
|
onLogin
|
||||||
redirectUltDest $ loginDest y
|
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 :: YesodAuth master => GHandler Auth master RepHtmlJson
|
||||||
getCheckR = do
|
getCheckR = do
|
||||||
creds <- maybeAuthId
|
creds <- maybeAuthId
|
||||||
@ -219,11 +235,7 @@ getLogoutR = do
|
|||||||
setUltDestReferer' >> redirectToPost (tm LogoutR)
|
setUltDestReferer' >> redirectToPost (tm LogoutR)
|
||||||
|
|
||||||
postLogoutR :: YesodAuth master => GHandler Auth master ()
|
postLogoutR :: YesodAuth master => GHandler Auth master ()
|
||||||
postLogoutR = do
|
postLogoutR = clearCreds True
|
||||||
y <- getYesod
|
|
||||||
deleteSession credsKey
|
|
||||||
onLogout
|
|
||||||
redirectUltDest $ logoutDest y
|
|
||||||
|
|
||||||
handlePluginR :: YesodAuth master => Text -> [Text] -> GHandler Auth master ()
|
handlePluginR :: YesodAuth master => Text -> [Text] -> GHandler Auth master ()
|
||||||
handlePluginR plugin pieces = do
|
handlePluginR plugin pieces = do
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user