Eliminate case ladder using MaybeT transformer
This commit is contained in:
parent
ecd6f00a92
commit
3a7620b49b
@ -26,6 +26,7 @@ module Yesod.Auth
|
|||||||
|
|
||||||
import Control.Monad (when)
|
import Control.Monad (when)
|
||||||
import Control.Monad.Trans.Class (lift)
|
import Control.Monad.Trans.Class (lift)
|
||||||
|
import Control.Monad.Trans.Maybe
|
||||||
|
|
||||||
import Data.Aeson
|
import Data.Aeson
|
||||||
import Data.Text.Encoding (decodeUtf8With)
|
import Data.Text.Encoding (decodeUtf8With)
|
||||||
@ -181,15 +182,10 @@ maybeAuth :: ( YesodAuth m
|
|||||||
, PersistEntity val
|
, PersistEntity val
|
||||||
, YesodPersist m
|
, YesodPersist m
|
||||||
) => GHandler s m (Maybe (Key val, val))
|
) => GHandler s m (Maybe (Key val, val))
|
||||||
maybeAuth = do
|
maybeAuth = runMaybeT $ do
|
||||||
maid <- maybeAuthId
|
aid <- MaybeT $ maybeAuthId
|
||||||
case maid of
|
a <- MaybeT $ runDB $ get aid
|
||||||
Nothing -> return Nothing
|
return (aid, a)
|
||||||
Just aid -> do
|
|
||||||
ma <- runDB $ get aid
|
|
||||||
case ma of
|
|
||||||
Nothing -> return Nothing
|
|
||||||
Just a -> return $ Just (aid, a)
|
|
||||||
|
|
||||||
requireAuthId :: YesodAuth m => GHandler s m (AuthId m)
|
requireAuthId :: YesodAuth m => GHandler s m (AuthId m)
|
||||||
requireAuthId = maybeAuthId >>= maybe redirectLogin return
|
requireAuthId = maybeAuthId >>= maybe redirectLogin return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user