From df7c897ee225eafb7c330da54ebb3aef8840cd09 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 11 Mar 2013 11:52:32 +0200 Subject: [PATCH] cached used in maybeAuth --- yesod-auth/Yesod/Auth.hs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/yesod-auth/Yesod/Auth.hs b/yesod-auth/Yesod/Auth.hs index 2807ff61..2a5c4b4d 100644 --- a/yesod-auth/Yesod/Auth.hs +++ b/yesod-auth/Yesod/Auth.hs @@ -253,12 +253,21 @@ maybeAuth :: ( YesodAuth master , PersistStore (b (GHandler sub master)) , PersistEntity val , YesodPersist master + , Typeable val ) => GHandler sub master (Maybe (Entity val)) maybeAuth = runMaybeT $ do aid <- MaybeT $ maybeAuthId - a <- MaybeT $ runDB $ get aid + a <- MaybeT + $ fmap unCachedMaybeAuth + $ cached + $ fmap CachedMaybeAuth + $ runDB + $ get aid return $ Entity aid a +newtype CachedMaybeAuth val = CachedMaybeAuth { unCachedMaybeAuth :: Maybe val } + deriving Typeable + requireAuthId :: YesodAuth master => GHandler sub master (AuthId master) requireAuthId = maybeAuthId >>= maybe redirectLogin return @@ -269,6 +278,7 @@ requireAuth :: ( YesodAuth master , PersistStore (b (GHandler sub master)) , PersistEntity val , YesodPersist master + , Typeable val ) => GHandler sub master (Entity val) requireAuth = maybeAuth >>= maybe redirectLogin return