From ed1ae8dae35c41137febc45784885c0e0bdc127a Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Tue, 28 Mar 2023 11:24:44 +0000 Subject: [PATCH 1/3] chore(apc): trim idents received from apc --- src/Handler/PrintCenter.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Handler/PrintCenter.hs b/src/Handler/PrintCenter.hs index 1ee47ea0b..c6faa651e 100644 --- a/src/Handler/PrintCenter.hs +++ b/src/Handler/PrintCenter.hs @@ -26,7 +26,7 @@ import Database.Esqueleto.Utils.TH import Utils.Print -- import Data.Aeson (encode) --- import qualified Data.Text as Text +import qualified Data.Text as Text -- import qualified Data.Set as Set import Handler.Utils @@ -394,7 +394,7 @@ postPrintAckDirectR = do Left (e :: SomeException) -> do -- catch all to avoid ok220 in case of any error $logWarnS "APC" $ "Result upload failed parsing: " <> tshow e return (badRequest400, "Error: " <> tshow e) - Right reqIds -> do + Right (fmap Text.strip -> reqIds) -> do -- inside conduit? let nrReq = length reqIds now <- liftIO getCurrentTime nrApcIds <- updateWhereCount From 731d0ce7c70533039d4ef82e8eaf366368c69403 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Tue, 28 Mar 2023 11:41:11 +0000 Subject: [PATCH 2/3] fix(email): invert invalid email error indicator --- src/Handler/Utils/Mail.hs | 7 ++++--- test/Database/Fill.hs | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Handler/Utils/Mail.hs b/src/Handler/Utils/Mail.hs index bda5fe032..6a5e7be61 100644 --- a/src/Handler/Utils/Mail.hs +++ b/src/Handler/Utils/Mail.hs @@ -56,8 +56,8 @@ userAddressError :: (MonadHandler m, HandlerSite m ~ UniWorX) => User -> m (Bool userAddressError User{userEmail, userDisplayEmail, userDisplayName} | Just okEmail <- pickValidEmail' userDisplayEmail userEmail = pure (True, Address (Just userDisplayName) $ CI.original okEmail) | otherwise = do - $logErrorS "Mail" $ "Attempt to email invalid address: " <> tshow userDisplayEmail <> " Sent to support instead." -- <> " with subject " <> tshow failedSubject - (True,) <$> getsYesod (view _appMailSupport) + $logErrorS "Mail" $ "Attempt to email invalid address: " <> tshow userDisplayEmail <> " / " <> tshow userEmail <> ". Sent to support instead." -- <> " with subject " <> tshow failedSubject + (False,) <$> getsYesod (view _appMailSupport) -- | Send an email to the given UserId or to all registered Supervisor with rerouteNotifications == True userMailT :: ( MonadHandler m @@ -145,8 +145,9 @@ userMailTdirect uid mAct = do -- failedSubject <- lookupMailHeader "Subject" -- unless (validEmail $ addressEmail mailtoAddr) ($logErrorS "Mail" $ "Attempt to email invalid address: " <> tshow mailtoAddr <> " with subject " <> tshow failedSubject) _mailTo .= pure mailtoAddr + res <- mAct unless mailOk $ mapSubject ("[ERROR]" <>) - mAct + pure res addFileDB :: ( MonadMail m , HandlerSite m ~ UniWorX diff --git a/test/Database/Fill.hs b/test/Database/Fill.hs index 5b2e03f84..183a051ae 100644 --- a/test/Database/Fill.hs +++ b/test/Database/Fill.hs @@ -437,12 +437,13 @@ fillDb = do userEmail' = CI.mk $ case firstName of "James" -> userIdent "John" -> userIdent - --"Elizabeth" -> "AVSID:" <> userMatrikelnummer' + "Elizabeth" -> "AVSID:" <> userMatrikelnummer' _ -> "E" <> userMatrikelnummer' <> "@fraport.de" userDisplayEmail' :: CI Text userDisplayEmail' = CI.mk $ case userSurname of "Walker" -> "AVSNO:" <> userMatrikelnummer' "Clark" -> "E" <> userMatrikelnummer' <> "@fraport.de" + "Elizabeth" -> "" _ -> userIdent matrikel <- toMatrikel <$> getRandomRs (0 :: Int, 9 :: Int) From 7c2226e138addc2154c58f98233d7c875d2ab0f9 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Tue, 28 Mar 2023 11:47:56 +0000 Subject: [PATCH 3/3] fix(email): remove test for E#@fraport.de --- src/Handler/Utils/Profile.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Handler/Utils/Profile.hs b/src/Handler/Utils/Profile.hs index 22f7a8098..cc823a019 100644 --- a/src/Handler/Utils/Profile.hs +++ b/src/Handler/Utils/Profile.hs @@ -82,12 +82,12 @@ validPostAddress _ = False -- also see `Handler.Utils.Users.getEmailAddress` for Tests accepting User Type validEmail :: Email -> Bool -- Email = Text -validEmail email = validRFC5322 && not invalidFraport +validEmail email = validRFC5322 -- && not invalidFraport where validRFC5322 = Email.isValid $ encodeUtf8 email - invalidFraport = case Text.stripSuffix "@fraport.de" email of - Just fralogin -> all isDigit $ drop 1 fralogin - Nothing -> False + -- invalidFraport = case Text.stripSuffix "@fraport.de" email of + -- Just fralogin -> all isDigit $ drop 1 fralogin + -- Nothing -> False validEmail' :: UserEmail -> Bool -- UserEmail = CI Text validEmail' = validEmail . CI.original