Removed enableClientSessions

This commit is contained in:
Michael Snoyman 2010-12-25 22:49:12 +02:00
parent aa8a4e9c25
commit 0c946de756
2 changed files with 11 additions and 17 deletions

View File

@ -96,15 +96,9 @@ class Eq (Route a) => Yesod a where
approot :: a -> String
-- | The encryption key to be used for encrypting client sessions.
encryptKey :: a -> IO CS.Key
encryptKey _ = getKey defaultKeyFile
-- | Whether or not to use client sessions.
--
-- FIXME: A better API would be to have 'encryptKey' return a Maybe, but
-- that would be a breaking change. Please include in Yesod 0.7.
enableClientSessions :: a -> Bool
enableClientSessions _ = True
-- Returning 'Nothing' disables sessions.
encryptKey :: a -> IO (Maybe CS.Key)
encryptKey _ = fmap Just $ getKey defaultKeyFile
-- | Number of minutes before a client session times out. Defaults to
-- 120 (2 hours).

View File

@ -242,9 +242,7 @@ toWaiApp y = do
-- middleware.
toWaiAppPlain :: (Yesod y, YesodSite y) => y -> IO W.Application
toWaiAppPlain a = do
key' <- if enableClientSessions a
then Just `fmap` encryptKey a
else return Nothing
key' <- encryptKey a
return $ cleanPath (splitPath a) (B.pack $ approot a)
$ toWaiApp' a key'
@ -277,7 +275,7 @@ toWaiApp' y key' segments env = do
(joinPath y (approot y) ps $ qs ++ qs')
(urlRenderOverride y u)
let errorHandler' = localNoCurrent . errorHandler
rr <- parseWaiRequest env session'
rr <- parseWaiRequest env session' key'
let h = do
onRequest
case eurl of
@ -347,8 +345,9 @@ httpAccept = map B.unpack
parseWaiRequest :: W.Request
-> [(String, String)] -- ^ session
-> Maybe a
-> IO Request
parseWaiRequest env session' = do
parseWaiRequest env session' key' = do
let gets' = map (bsToChars *** bsToChars)
$ parseQueryString $ W.queryString env
let reqCookie = fromMaybe B.empty $ lookup "Cookie"
@ -366,9 +365,10 @@ parseWaiRequest env session' = do
Nothing -> langs''
Just x -> x : langs''
rbthunk <- iothunk $ rbHelper env
nonce <- case lookup nonceKey session' of
Just x -> return x
Nothing -> do
nonce <- case (key', lookup nonceKey session') of
(Nothing, _) -> return $ error "You have attempted to use the nonce, but sessions are disabled." -- FIXME maybe this should be handled without an error?
(_, Just x) -> return x
(_, Nothing) -> do
g <- newStdGen
return $ fst $ randomString 10 g
return $ Request gets' cookies' rbthunk env langs''' nonce