diff --git a/yesod-core/Yesod/Internal/Core.hs b/yesod-core/Yesod/Internal/Core.hs index 4fedabeb..25d1be74 100644 --- a/yesod-core/Yesod/Internal/Core.hs +++ b/yesod-core/Yesod/Internal/Core.hs @@ -372,6 +372,17 @@ $doctype 5 shouldLog :: a -> LogSource -> LogLevel -> Bool shouldLog a _ level = level >= logLevel a + -- | A Yesod middleware, which will wrap every handler function. This + -- allows you to run code before and after a normal handler. + -- + -- Default: Adds the response header \"Vary: Accept, Accept-Language\". + -- + -- Since: 1.1.6 + yesodMiddleware :: GHandler sub a res -> GHandler sub a res + yesodMiddleware handler = do + setHeader "Vary" "Accept, Accept-Language" + handler + {-# DEPRECATED messageLogger "Please use messageLoggerSource (since yesod-core 1.1.2)" #-} formatLogMessage :: IO ZonedDate @@ -419,7 +430,7 @@ defaultYesodRunner :: Yesod master -> (Route sub -> Route master) -> Maybe (SessionBackend master) -> W.Application -defaultYesodRunner logger handler master sub murl toMasterRoute msb req +defaultYesodRunner logger handler' master sub murl toMasterRoute msb req | maximumContentLength master (fmap toMasterRoute murl) < len = return $ W.responseLBS (H.Status 413 "Too Large") @@ -469,6 +480,7 @@ defaultYesodRunner logger handler master sub murl toMasterRoute msb req case reads $ S8.unpack s of [] -> Nothing (x, _):_ -> Just x + handler = yesodMiddleware handler' data AuthResult = Authorized | AuthenticationRequired | Unauthorized Text deriving (Eq, Show, Read) diff --git a/yesod-core/test/YesodCoreTest/Widget.hs b/yesod-core/test/YesodCoreTest/Widget.hs index dee452aa..9b14ee35 100644 --- a/yesod-core/test/YesodCoreTest/Widget.hs +++ b/yesod-core/test/YesodCoreTest/Widget.hs @@ -131,3 +131,4 @@ case_jshead = runner $ do { pathInfo = ["jshead"] } assertBody "\n" res + assertHeader "Vary" "Accept, Accept-Language" res diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index 07ef4858..d2dcaed2 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -1,5 +1,5 @@ name: yesod-core -version: 1.1.5 +version: 1.1.6 license: MIT license-file: LICENSE author: Michael Snoyman