chore(audit): audit submission file edits and deletes

This commit is contained in:
Sarah Vaupel 2019-09-05 17:19:22 +02:00
parent f462d44c49
commit 5f0afbd11d

View File

@ -482,8 +482,8 @@ sinkSubmission userId mExists isUpdate = do
audit $ TransactionSubmissionFileEdit subFileId submissionId fileId
when undoneDeletion $ do
touchSubmission
lift $ forM_ [ (sfId, submissionFileFile sf) | (_, Entity sfId sf) <- collidingFiles, submissionFileIsDeletion sf ] $ \(sfId, fId) -> audit $ TransactionSubmissionFileDelete sfId submissionId fId
lift $ deleteWhere [ SubmissionFileId <-. [ sfId | (_, Entity sfId sf) <- collidingFiles, submissionFileIsDeletion sf ] ]
-- audit $ TransactionSubmissionFileDelete sfId submissionId fId -- TODO: get sfId, fId
Right (submissionId', r) -> do
$logDebugS "sinkSubmission" $ tshow submissionId'
@ -534,7 +534,8 @@ sinkSubmission userId mExists isUpdate = do
when (submissionRatingDone submission' && not (submissionRatingDone submission)) $
tellSt mempty { sinkSubmissionNotifyRating = Any True }
lift $ replace submissionId submission'
-- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId
sheetId <- lift $ getSheetId
lift $ audit $ TransactionSubmissionEdit submissionId sheetId
where
a /~ b = not $ a ~~ b
@ -565,6 +566,13 @@ sinkSubmission userId mExists isUpdate = do
when (is _Just submissionRatingTime) $
lift $ update submissionId [ SubmissionRatingTime =. Just now ]
tellSt $ mempty{ sinkSubmissionTouched = Any True }
getSheetId :: MonadIO m => ReaderT SqlBackend m SheetId
getSheetId = case mExists of
Left shid -> return shid
Right _ -> do
Just Submission{submissionSheet} <- E.get submissionId -- there must have been a submission, otherwise mExists would have been Left shid
return submissionSheet
finalize :: SubmissionSinkState -> YesodJobDB UniWorX ()
finalize SubmissionSinkState{..} = do
@ -608,7 +616,8 @@ sinkSubmission userId mExists isUpdate = do
, isn't (_Wrapped . _Just) sinkSeenRating
-> do
update submissionId [ SubmissionRatingTime =. Nothing, SubmissionRatingPoints =. Nothing, SubmissionRatingComment =. Nothing]
-- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId
sheetId <- getSheetId
audit $ TransactionSubmissionEdit submissionId sheetId
| isUpdate
, getAny sinkSubmissionNotifyRating
-> queueDBJob . JobQueueNotification $ NotificationSubmissionRated submissionId