chore(audit): audit submission file edits and deletes
This commit is contained in:
parent
f462d44c49
commit
5f0afbd11d
@ -482,8 +482,8 @@ sinkSubmission userId mExists isUpdate = do
|
|||||||
audit $ TransactionSubmissionFileEdit subFileId submissionId fileId
|
audit $ TransactionSubmissionFileEdit subFileId submissionId fileId
|
||||||
when undoneDeletion $ do
|
when undoneDeletion $ do
|
||||||
touchSubmission
|
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 ] ]
|
lift $ deleteWhere [ SubmissionFileId <-. [ sfId | (_, Entity sfId sf) <- collidingFiles, submissionFileIsDeletion sf ] ]
|
||||||
-- audit $ TransactionSubmissionFileDelete sfId submissionId fId -- TODO: get sfId, fId
|
|
||||||
|
|
||||||
Right (submissionId', r) -> do
|
Right (submissionId', r) -> do
|
||||||
$logDebugS "sinkSubmission" $ tshow submissionId'
|
$logDebugS "sinkSubmission" $ tshow submissionId'
|
||||||
@ -534,7 +534,8 @@ sinkSubmission userId mExists isUpdate = do
|
|||||||
when (submissionRatingDone submission' && not (submissionRatingDone submission)) $
|
when (submissionRatingDone submission' && not (submissionRatingDone submission)) $
|
||||||
tellSt mempty { sinkSubmissionNotifyRating = Any True }
|
tellSt mempty { sinkSubmissionNotifyRating = Any True }
|
||||||
lift $ replace submissionId submission'
|
lift $ replace submissionId submission'
|
||||||
-- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId
|
sheetId <- lift $ getSheetId
|
||||||
|
lift $ audit $ TransactionSubmissionEdit submissionId sheetId
|
||||||
where
|
where
|
||||||
a /~ b = not $ a ~~ b
|
a /~ b = not $ a ~~ b
|
||||||
|
|
||||||
@ -566,6 +567,13 @@ sinkSubmission userId mExists isUpdate = do
|
|||||||
lift $ update submissionId [ SubmissionRatingTime =. Just now ]
|
lift $ update submissionId [ SubmissionRatingTime =. Just now ]
|
||||||
tellSt $ mempty{ sinkSubmissionTouched = Any True }
|
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 -> YesodJobDB UniWorX ()
|
||||||
finalize SubmissionSinkState{..} = do
|
finalize SubmissionSinkState{..} = do
|
||||||
missingFiles <- E.select . E.from $ \(sf `E.InnerJoin` f) -> E.distinctOnOrderBy [E.asc $ f E.^. FileTitle] $ do
|
missingFiles <- E.select . E.from $ \(sf `E.InnerJoin` f) -> E.distinctOnOrderBy [E.asc $ f E.^. FileTitle] $ do
|
||||||
@ -608,7 +616,8 @@ sinkSubmission userId mExists isUpdate = do
|
|||||||
, isn't (_Wrapped . _Just) sinkSeenRating
|
, isn't (_Wrapped . _Just) sinkSeenRating
|
||||||
-> do
|
-> do
|
||||||
update submissionId [ SubmissionRatingTime =. Nothing, SubmissionRatingPoints =. Nothing, SubmissionRatingComment =. Nothing]
|
update submissionId [ SubmissionRatingTime =. Nothing, SubmissionRatingPoints =. Nothing, SubmissionRatingComment =. Nothing]
|
||||||
-- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId
|
sheetId <- getSheetId
|
||||||
|
audit $ TransactionSubmissionEdit submissionId sheetId
|
||||||
| isUpdate
|
| isUpdate
|
||||||
, getAny sinkSubmissionNotifyRating
|
, getAny sinkSubmissionNotifyRating
|
||||||
-> queueDBJob . JobQueueNotification $ NotificationSubmissionRated submissionId
|
-> queueDBJob . JobQueueNotification $ NotificationSubmissionRated submissionId
|
||||||
|
|||||||
Reference in New Issue
Block a user