From 64b21d6fe60821343fa298226f90f49547091bee Mon Sep 17 00:00:00 2001 From: Steffen Date: Tue, 11 Jun 2024 12:53:17 +0200 Subject: [PATCH] chore(cache): add caching for simpleLinks and modal access --- src/Handler/Utils/Widgets.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Handler/Utils/Widgets.hs b/src/Handler/Utils/Widgets.hs index 3f6b1fe89..b56075a2c 100644 --- a/src/Handler/Utils/Widgets.hs +++ b/src/Handler/Utils/Widgets.hs @@ -38,7 +38,8 @@ visibleUTCTime dtf t = do -- | Simple link to a known route simpleLink :: HasRoute UniWorX url => Widget -> url -> Widget simpleLink lbl url = do - isAuth <- hasReadAccessTo $ urlRoute url + let route = urlRoute url + isAuth <- liftHandler . $cachedHereBinary route $ hasReadAccessTo route if | isAuth -> do tUrl <- toTextUrl url [whamlet| @@ -127,7 +128,7 @@ editedByW fmt tm usr = do -- | like `modal`, but only conditionally displays the modal link only after checking access rights. WARNING: this might be too slow for large dbTable. Use `modalAccessCheckOnClick` instead modalAccess :: Widget -> Widget -> Bool -> Route UniWorX -> Widget modalAccess wdgtNo wdgtYes writeAccess route = do - authOk <- liftHandler $ bool hasReadAccessTo hasWriteAccessTo writeAccess route + authOk <- liftHandler . $cachedHereBinary (route, writeAccess) $ bool hasReadAccessTo hasWriteAccessTo writeAccess route if authOk then modal wdgtYes (Left $ SomeRoute route) else wdgtNo