packages feed

yesod-core 1.4.9 → 1.4.9.1

raw patch · 3 files changed

+9/−5 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Yesod.Core: class RenderRoute site => Yesod site where approot = ApprootRelative errorHandler = defaultErrorHandler defaultLayout w = do { p <- widgetToPageContent w; mmsg <- getMessage; withUrlRenderer (\ _render_a2bu0 -> do { id ((preEscapedText . pack) "<!DOCTYPE html>\n\ \<html><head><style type="text/css">#synopsis details:not([open]) > ul { visibility: hidden; }</style><title>"); id (toHtml (pageTitle p)); id ((preEscapedText . pack) "</title>"); asHtmlUrl (pageHead p) _render_a2bu0; id ((preEscapedText . pack) "</head><body>"); maybeH mmsg (\ msg_a2bu1 -> do { id ((preEscapedText . pack) "<p class=\"message\">"); id (toHtml msg_a2bu1); id ((preEscapedText . pack) "</p>") }) Nothing; asHtmlUrl (pageBody p) _render_a2bu0; id ((preEscapedText . pack) "</body></html>") }) } urlRenderOverride _ _ = Nothing isAuthorized _ _ = return Authorized isWriteRequest _ = do { wai <- waiRequest; return $ requestMethod wai `notElem` ["GET", "HEAD", "OPTIONS", "TRACE"] } authRoute _ = Nothing cleanPath _ s = if corrected == s then Right $ map dropDash s else Left corrected where corrected = filter (not . null) s dropDash t | all (== '-') t = drop 1 t | otherwise = t joinPath _ ar pieces' qs' = fromText ar `mappend` encodePath pieces qs where pieces = if null pieces' then [""] else map addDash pieces' qs = map (encodeUtf8 *** go) qs' go "" = Nothing go x = Just $ encodeUtf8 x addDash t | all (== '-') t = cons '-' t | otherwise = t addStaticContent _ _ _ = return Nothing maximumContentLength _ _ = Just $ 2 * 1024 * 1024 makeLogger _ = do { loggerSet' <- newStdoutLoggerSet defaultBufSize; (getter, _) <- clockDateCacher; return $! Logger loggerSet' getter } messageLoggerSource a logger loc source level msg = do { sl <- shouldLogIO a source level; when sl $ formatLogMessage (loggerDate logger) loc source level msg >>= loggerPutStr logger } jsLoader _ = BottomOfBody makeSessionBackend _ = fmap Just $ defaultClientSessionBackend 120 defaultKeyFile fileUpload _ (KnownLength size) | size <= 50000 = FileUploadMemory lbsBackEnd fileUpload _ _ = FileUploadDisk tempFileBackEnd shouldLog _ _ level = level >= LevelInfo shouldLogIO a b c = return (shouldLog a b c) yesodMiddleware = defaultYesodMiddleware yesodWithInternalState _ _ = bracket createInternalState closeInternalState
+ Yesod.Core: class RenderRoute site => Yesod site where approot = ApprootRelative errorHandler = defaultErrorHandler defaultLayout w = do { p <- widgetToPageContent w; mmsg <- getMessage; withUrlRenderer (\ _render_a2dIn -> do { id ((preEscapedText . pack) "<!DOCTYPE html>\n\ \<html><head><style type="text/css">#synopsis details:not([open]) > ul { visibility: hidden; }</style><title>"); id (toHtml (pageTitle p)); id ((preEscapedText . pack) "</title>"); asHtmlUrl (pageHead p) _render_a2dIn; id ((preEscapedText . pack) "</head><body>"); maybeH mmsg (\ msg_a2dIo -> do { id ((preEscapedText . pack) "<p class=\"message\">"); id (toHtml msg_a2dIo); id ((preEscapedText . pack) "</p>") }) Nothing; asHtmlUrl (pageBody p) _render_a2dIn; id ((preEscapedText . pack) "</body></html>") }) } urlRenderOverride _ _ = Nothing isAuthorized _ _ = return Authorized isWriteRequest _ = do { wai <- waiRequest; return $ requestMethod wai `notElem` ["GET", "HEAD", "OPTIONS", "TRACE"] } authRoute _ = Nothing cleanPath _ s = if corrected == s then Right $ map dropDash s else Left corrected where corrected = filter (not . null) s dropDash t | all (== '-') t = drop 1 t | otherwise = t joinPath _ ar pieces' qs' = fromText ar `mappend` encodePath pieces qs where pieces = if null pieces' then [""] else map addDash pieces' qs = map (encodeUtf8 *** go) qs' go "" = Nothing go x = Just $ encodeUtf8 x addDash t | all (== '-') t = cons '-' t | otherwise = t addStaticContent _ _ _ = return Nothing maximumContentLength _ _ = Just $ 2 * 1024 * 1024 makeLogger _ = do { loggerSet' <- newStdoutLoggerSet defaultBufSize; (getter, _) <- clockDateCacher; return $! Logger loggerSet' getter } messageLoggerSource a logger loc source level msg = do { sl <- shouldLogIO a source level; when sl $ formatLogMessage (loggerDate logger) loc source level msg >>= loggerPutStr logger } jsLoader _ = BottomOfBody makeSessionBackend _ = fmap Just $ defaultClientSessionBackend 120 defaultKeyFile fileUpload _ (KnownLength size) | size <= 50000 = FileUploadMemory lbsBackEnd fileUpload _ _ = FileUploadDisk tempFileBackEnd shouldLog _ _ level = level >= LevelInfo shouldLogIO a b c = return (shouldLog a b c) yesodMiddleware = defaultYesodMiddleware yesodWithInternalState _ _ = bracket createInternalState closeInternalState

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.4.9.1++* Deal better with multiple cookie headers+ ## 1.4.9  * Add simple authentication helpers [#962](https://github.com/yesodweb/yesod/pull/962)
Yesod/Core/Class/Yesod.hs view
@@ -695,11 +695,11 @@     load = do       date <- getCachedDate       return (sess date, save date)-    sess date = fromMaybe Map.empty $ do-      raw <- lookup "Cookie" $ W.requestHeaders req-      val <- lookup sessionName $ parseCookies raw+    sess date = Map.unions $ do+      raw <- [v | (k, v) <- W.requestHeaders req, k == "Cookie"]+      val <- [v | (k, v) <- parseCookies raw, k == sessionName]       let host = "" -- fixme, properly lock sessions to client address-      decodeClientSession key date host val+      maybe [] return $ decodeClientSession key date host val     save date sess' = do       -- We should never cache the IV!  Be careful!       iv <- liftIO CS.randomIV
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.4.9+version:         1.4.9.1 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>