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