web: with --serve-api, also disable the header/sidebar HTML
This commit is contained in:
parent
53b995bcd2
commit
a154ea72c0
@ -26,6 +26,7 @@ import Data.Text (Text)
|
|||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import Data.Time.Calendar (Day)
|
import Data.Time.Calendar (Day)
|
||||||
import Network.HTTP.Conduit (Manager)
|
import Network.HTTP.Conduit (Manager)
|
||||||
|
import Network.HTTP.Types (status403)
|
||||||
import Network.Wai (requestHeaders)
|
import Network.Wai (requestHeaders)
|
||||||
import System.FilePath (takeFileName)
|
import System.FilePath (takeFileName)
|
||||||
import Text.Blaze (Markup)
|
import Text.Blaze (Markup)
|
||||||
@ -100,7 +101,14 @@ instance Yesod App where
|
|||||||
let sessionexpirysecs = 120
|
let sessionexpirysecs = 120
|
||||||
in Just <$> defaultClientSessionBackend sessionexpirysecs ".hledger-web_client_session_key.aes"
|
in Just <$> defaultClientSessionBackend sessionexpirysecs ".hledger-web_client_session_key.aes"
|
||||||
|
|
||||||
|
-- defaultLayout :: WidgetFor site () -> HandlerFor site Html
|
||||||
defaultLayout widget = do
|
defaultLayout widget = do
|
||||||
|
|
||||||
|
-- Don't run if server-side UI is disabled.
|
||||||
|
-- This single check probably covers all the HTML-returning handlers,
|
||||||
|
-- but for now they do the check as well.
|
||||||
|
checkServerSideUiEnabled
|
||||||
|
|
||||||
master <- getYesod
|
master <- getYesod
|
||||||
here <- fromMaybe RootR <$> getCurrentRoute
|
here <- fromMaybe RootR <$> getCurrentRoute
|
||||||
VD {caps, j, m, opts, q, qopts} <- getViewData
|
VD {caps, j, m, opts, q, qopts} <- getViewData
|
||||||
@ -209,7 +217,10 @@ getViewData = do
|
|||||||
checkServerSideUiEnabled :: Handler ()
|
checkServerSideUiEnabled :: Handler ()
|
||||||
checkServerSideUiEnabled = do
|
checkServerSideUiEnabled = do
|
||||||
VD{opts=WebOpts{serve_api_}} <- getViewData
|
VD{opts=WebOpts{serve_api_}} <- getViewData
|
||||||
when serve_api_ $ permissionDenied "server-side UI is disabled due to --serve-api"
|
when serve_api_ $
|
||||||
|
-- this one gives 500 internal server error when called from defaultLayout:
|
||||||
|
-- permissionDenied "server-side UI is disabled due to --serve-api"
|
||||||
|
sendResponseStatus status403 ("server-side UI is disabled due to --serve-api" :: Text)
|
||||||
|
|
||||||
-- | Find out if the sidebar should be visible. Show it, unless there is a
|
-- | Find out if the sidebar should be visible. Show it, unless there is a
|
||||||
-- showsidebar cookie set to "0", or a ?sidebar=0 query parameter.
|
-- showsidebar cookie set to "0", or a ?sidebar=0 query parameter.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user