From da253f7fbdb919bb9cc52310148dcc28c382cfa4 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 17 Feb 2022 17:23:28 +0100 Subject: [PATCH] feat(system-msg): display system status messages on volatile cluster settings only --- src/Handler/News.hs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Handler/News.hs b/src/Handler/News.hs index c696006f9..30afe042f 100644 --- a/src/Handler/News.hs +++ b/src/Handler/News.hs @@ -73,15 +73,17 @@ newsSystemMessages = do return $ guardOn (not hidden || showHidden) (smId, sm, trans, hidden) - (messages', Any anyHidden) <- liftHandler . runDB . runConduit . C.runWriterLC $ - transPipe lift (selectKeys [] []) - .| C.filterM (lift . hasReadAccessTo . MessageR <=< encrypt) - .| transPipe lift (C.mapMaybeM $ \smId -> fmap (\args@(sm, _) -> (smId, sm, systemMessageToTranslation smId args)) <$> getSystemMessage smId) - .| C.filter (\(_, SystemMessage{..}, _) -> NTop systemMessageFrom <= NTop (Just now) && NTop (Just now) < NTop systemMessageTo) - .| C.mapMaybeM checkHidden - .| C.iterM (\(smId, _, _, _) -> tellShown smId) - .| C.mapM (\(smId, sm@SystemMessage{..}, trans, hidden) -> (sm, trans, hidden,,) <$> formatTime SelFormatDateTime (maybe id max systemMessageFrom systemMessageLastChanged) <*> mkHideForm smId sm) - .| C.consume + (messages', Any anyHidden) <- liftHandler . runDB $ do + volatileClusterConfig <- selectList [] [] + runConduit . C.runWriterLC $ + transPipe lift (selectKeys [] []) + .| C.filterM (lift . hasReadAccessTo . MessageR <=< encrypt) + .| transPipe lift (C.mapMaybeM $ \smId -> fmap (\args@(sm, _) -> (smId, sm, systemMessageToTranslation smId args)) <$> getSystemMessage smId) + .| C.filter (\(_, SystemMessage{..}, _) -> NTop systemMessageFrom <= NTop (Just now) && NTop (Just now) < NTop systemMessageTo && all (\(k,v) -> (k,v) `elem` ((\VolatileClusterConfig{..} -> (volatileClusterConfigSetting, volatileClusterConfigValue)) . entityVal <$> volatileClusterConfig)) (Set.toList systemMessageOnVolatileClusterSettings)) + .| C.mapMaybeM checkHidden + .| C.iterM (\(smId, _, _, _) -> tellShown smId) + .| C.mapM (\(smId, sm@SystemMessage{..}, trans, hidden) -> (sm, trans, hidden,,) <$> formatTime SelFormatDateTime (maybe id max systemMessageFrom systemMessageLastChanged) <*> mkHideForm smId sm) + .| C.consume let messages = sortOn (\(SystemMessage{..}, _, _, _, _) -> (Down systemMessageManualPriority, Down $ maybe id max systemMessageFrom systemMessageLastChanged, systemMessageSeverity)) messages' hiddenUrl <- toTextUrl (NewsR, [(toPathPiece GetHidden, "")])