setLanguage uses user session

This commit is contained in:
Michael Snoyman 2010-06-30 21:21:49 +03:00
parent 5bed76f067
commit 6ce79d673f
2 changed files with 10 additions and 7 deletions

View File

@ -321,14 +321,17 @@ parseWaiRequest env session' = do
cookies' = map (S.toString *** S.toString) $ parseCookies reqCookie
acceptLang = lookup W.AcceptLanguage $ W.requestHeaders env
langs = map S.toString $ maybe [] parseHttpAccept acceptLang
langs' = case lookup langKey cookies' of
langs' = case lookup langKey session' of
Nothing -> langs
Just x -> x : langs
langs'' = case lookup langKey gets' of
Nothing -> langs'
Just x -> x : langs'
langs'' = case lookup langKey cookies' of
Nothing -> langs'
Just x -> x : langs'
langs''' = case lookup langKey gets' of
Nothing -> langs''
Just x -> x : langs''
rbthunk <- iothunk $ rbHelper env
return $ Request gets' cookies' session' rbthunk env langs''
return $ Request gets' cookies' session' rbthunk env langs'''
rbHelper :: W.Request -> IO RequestBodyContents
rbHelper = fmap (fix1 *** map fix2) . parseRequestBody lbsSink where

View File

@ -382,9 +382,9 @@ setCookie a b = addHeader . AddCookie a b
deleteCookie :: String -> GHandler sub master ()
deleteCookie = addHeader . DeleteCookie
-- | Set the language header. Will show up in 'languages'.
-- | Set the language in the user session. Will show up in 'languages'.
setLanguage :: String -> GHandler sub master ()
setLanguage = setCookie 60 langKey -- FIXME shouldn't we use session for this?
setLanguage = setSession langKey
-- | Set an arbitrary header on the client.
setHeader :: String -> String -> GHandler sub master ()