summaryrefslogtreecommitdiff
path: root/Utility/WebApp.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-06-02 15:57:22 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-06-03 11:25:23 -0400
commit55276e3be82cb574d5bb5964cbfbbb6e37f5dff2 (patch)
treee3ea0d1067b0f0667d7dfc05e79b9f7732eaa10a /Utility/WebApp.hs
parent16ca22c60af39cc06db62215a1ac12cd5ae7a3c5 (diff)
WIP yesod 1.2
Diffstat (limited to 'Utility/WebApp.hs')
-rw-r--r--Utility/WebApp.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/Utility/WebApp.hs b/Utility/WebApp.hs
index 4c112bbe6..240d097b0 100644
--- a/Utility/WebApp.hs
+++ b/Utility/WebApp.hs
@@ -178,7 +178,7 @@ lookupRequestField k req = fromMaybe "" . lookup k $ Wai.requestHeaders req
{- Rather than storing a session key on disk, use a random key
- that will only be valid for this run of the webapp. -}
-webAppSessionBackend :: Yesod.Yesod y => y -> IO (Maybe (Yesod.SessionBackend y))
+webAppSessionBackend :: Yesod.Yesod y => y -> IO (Maybe Yesod.SessionBackend)
webAppSessionBackend _ = do
g <- newGenIO :: IO SystemRandom
case genBytes 96 g of
@@ -189,6 +189,10 @@ webAppSessionBackend _ = do
where
timeout = 120 * 60 -- 120 minutes
use key =
+#if MIN_VERSION_yesod(1,2,0)
+ Just . Yesod.clientSessionBackend key . fst
+ <$> Yesod.clientSessionDateCacher timeout
+#else
#if MIN_VERSION_yesod(1,1,7)
Just . Yesod.clientSessionBackend2 key . fst
<$> Yesod.clientSessionDateCacher timeout
@@ -196,6 +200,7 @@ webAppSessionBackend _ = do
return $ Just $
Yesod.clientSessionBackend key timeout
#endif
+#endif
{- Generates a random sha512 string, suitable to be used for an
- authentication secret. -}
@@ -213,7 +218,7 @@ genRandomToken = do
- Note that the usual Yesod error page is bypassed on error, to avoid
- possibly leaking the auth token in urls on that page!
-}
-checkAuthToken :: forall t sub. (t -> T.Text) -> Yesod.GHandler sub t Yesod.AuthResult
+checkAuthToken :: (Monad m, Yesod.MonadHandler m) => (Yesod.HandlerSite m -> T.Text) -> m Yesod.AuthResult
checkAuthToken extractToken = do
webapp <- Yesod.getYesod
req <- Yesod.getRequest