chore(mail): modify subject for supervisor

This commit is contained in:
Steffen Jost 2022-11-03 15:46:50 +01:00
parent 2c10a07a15
commit a75c7520b5
4 changed files with 36 additions and 5 deletions

View File

@ -135,7 +135,7 @@ UserAuthModeLDAPChangedToPWHash: You can now log in using your FRADrive-internal
AuthPWHashTip: You now need to use the login form labeled "FRADrive login". Please ensure that you have already set a password when you try to log in. AuthPWHashTip: You now need to use the login form labeled "FRADrive login". Please ensure that you have already set a password when you try to log in.
PasswordResetEmailIncoming: For security reasons you will receive a link to the page on which you can set and later change your password in a separate email. PasswordResetEmailIncoming: For security reasons you will receive a link to the page on which you can set and later change your password in a separate email.
MailFradrive: FRADrive MailFradrive: FRADrive
MailBodyFradrive: is the apron driving licence management app of Fraport AG. MailBodyFradrive: is the apron driver's licence management app of Fraport AG.
#userRightsUpdate.hs + templates #userRightsUpdate.hs + templates
MailSubjectUserRightsUpdate name: Permissions for #{name} changed MailSubjectUserRightsUpdate name: Permissions for #{name} changed

View File

@ -54,6 +54,7 @@ userMailT :: ( MonadHandler m
, MonadUnliftIO m , MonadUnliftIO m
) => UserId -> MailT m () -> m () ) => UserId -> MailT m () -> m ()
userMailT uid mAct = do userMailT uid mAct = do
-- now <- liftIO getCurrentTime
superVs <- liftHandler . runDB $ selectList [UserSupervisorUser ==. uid, UserSupervisorRerouteNotifications ==. True] [] superVs <- liftHandler . runDB $ selectList [UserSupervisorUser ==. uid, UserSupervisorRerouteNotifications ==. True] []
let receivers = if null superVs let receivers = if null superVs
then [uid] then [uid]
@ -75,10 +76,16 @@ userMailT uid mAct = do
SelFormatTime -> userTimeFormat SelFormatTime -> userTimeFormat
, mcCsvOptions = userCsvOptions , mcCsvOptions = userCsvOptions
} }
--bsExplainSupervisor = $(ihamletFile "templates/mail/supervisorPrefix.hamlet") -- TODO
--explanationSupervisor = File { fileTitle = "SupervisorInfo.txt"
-- , fileModified = no
-- , fileContent = Just $ yield bsExplainSupervisor
-- }
mailT ctx $ do mailT ctx $ do
_mailTo .= pure (userAddress supervisor) _mailTo .= pure (userAddress supervisor)
-- unless (uid == svr) $ addHtmlMarkdownAlternatives $(ihamletFile "templates/mail/supervisorPrefix.hamlet") -- TODO
mAct mAct
mapSubject ("[SUPERVISOR]"<>) -- changing subject is easy
--addPart explanationSupervisor -- adding an attachment is also easy
_userMailTdirect :: ( MonadHandler m _userMailTdirect :: ( MonadHandler m

View File

@ -14,6 +14,13 @@ import Handler.Utils.DateTime
dispatchJobSendTestEmail :: Email -> MailContext -> JobHandler UniWorX dispatchJobSendTestEmail :: Email -> MailContext -> JobHandler UniWorX
dispatchJobSendTestEmail jEmail jMailContext = JobHandlerException . mailT jMailContext $ do dispatchJobSendTestEmail jEmail jMailContext = JobHandlerException . mailT jMailContext $ do
_mailTo .= [Address Nothing jEmail] _mailTo .= [Address Nothing jEmail]
-- TODO: remove me after the test!
addHtmlMarkdownAlternatives $ \(MsgRenderer _mr) -> [shamlet|
<h1>
Testheader
<p>
Dieser Abschnitt ist ein Test, ob mehrfache Mailparts ankommen.
|]
replaceMailHeader "Auto-Submitted" $ Just "auto-generated" replaceMailHeader "Auto-Submitted" $ Just "auto-generated"
setSubjectI MsgMailTestSubject setSubjectI MsgMailTestSubject
now <- liftIO getCurrentTime now <- liftIO getCurrentTime
@ -21,6 +28,18 @@ dispatchJobSendTestEmail jEmail jMailContext = JobHandlerException . mailT jMail
nD <- formatTimeMail SelFormatDate now nD <- formatTimeMail SelFormatDate now
nT <- formatTimeMail SelFormatTime now nT <- formatTimeMail SelFormatTime now
addHtmlMarkdownAlternatives $ \(MsgRenderer mr) -> [shamlet| addHtmlMarkdownAlternatives $ \(MsgRenderer mr) -> [shamlet|
<h2>
#{mr MsgMailTestContent}
<p>
#{mr MsgMailTestDateTime}
<ul>
<li>#{nDT}
<li>#{nD}
<li>#{nT}
|]
addHtmlMarkdownAlternatives $ \(MsgRenderer mr) -> [shamlet|
<h2>Repetition just for Testing
<p> <p>
#{mr MsgMailTestContent} #{mr MsgMailTestContent}

View File

@ -28,9 +28,9 @@ module Mail
, MonadHeader(..) , MonadHeader(..)
, MailHeader , MailHeader
, MailObjectId , MailObjectId
, replaceMailHeader, addMailHeader, removeMailHeader, getMailHeaders, lookupMailHeader , replaceMailHeader, addMailHeader, removeMailHeader, getMailHeaders, lookupMailHeader, mapMailHeader
, replaceMailHeaderI, addMailHeaderI , replaceMailHeaderI, addMailHeaderI
, setSubjectI , setSubjectI, mapSubject
, setMailObjectUUID, setMailObjectIdRandom, setMailObjectIdCrypto, setMailObjectIdPseudorandom , setMailObjectUUID, setMailObjectIdRandom, setMailObjectIdCrypto, setMailObjectIdPseudorandom
, getMailObjectId , getMailObjectId
, setDate, setDateCurrent , setDate, setDateCurrent
@ -77,7 +77,7 @@ import qualified Data.Text.Lazy.Builder as LTB
import qualified Data.ByteString.Lazy as LBS import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString as BS import qualified Data.ByteString as BS
import Utils (MsgRendererS(..), MonadSecretBox(..), YamlValue, maybeMonoid, insertAssoc, maybeT, guardM) import Utils (MsgRendererS(..), MonadSecretBox(..), YamlValue, maybeMonoid, insertAssoc, maybeT, guardM, adjustAssoc)
import Utils.Lens.TH import Utils.Lens.TH
import Control.Lens hiding (from) import Control.Lens hiding (from)
@ -518,6 +518,8 @@ getMailHeaders header = stateHeaders $ \hdrs -> (, hdrs) . map (view _2) $ filte
lookupMailHeader :: MonadHeader m => MailHeader -> m (Maybe Text) lookupMailHeader :: MonadHeader m => MailHeader -> m (Maybe Text)
lookupMailHeader = fmap listToMaybe . getMailHeaders lookupMailHeader = fmap listToMaybe . getMailHeaders
mapMailHeader :: MonadHeader m => MailHeader -> (Text -> Text) -> m ()
mapMailHeader header f = modifyHeaders $ adjustAssoc f header
replaceMailHeaderI :: ( RenderMessage site msg replaceMailHeaderI :: ( RenderMessage site msg
, MonadMail m , MonadMail m
@ -537,6 +539,9 @@ addMailHeaderI header msg = addMailHeader header =<< (getMailMessageRender <*> p
setSubjectI :: (RenderMessage site msg, MonadHandler m, HandlerSite m ~ site) => msg -> MailT m () setSubjectI :: (RenderMessage site msg, MonadHandler m, HandlerSite m ~ site) => msg -> MailT m ()
setSubjectI = replaceMailHeaderI "Subject" setSubjectI = replaceMailHeaderI "Subject"
mapSubject :: MonadHeader m => (Text -> Text) -> m ()
mapSubject = mapMailHeader "Subject"
setMailObjectUUID :: ( MonadHeader m setMailObjectUUID :: ( MonadHeader m
, YesodMail (HandlerSite m) , YesodMail (HandlerSite m)
) => UUID -> m MailObjectId ) => UUID -> m MailObjectId