chore(audit): audit submission file edits and deletes
This commit is contained in:
parent
537e66e487
commit
f462d44c49
@ -71,7 +71,6 @@ data Transaction
|
||||
, transactionUser :: UserId
|
||||
}
|
||||
|
||||
-- TODO: not yet audited
|
||||
| TransactionSubmissionFileEdit
|
||||
{ transactionSubmissionFile :: SubmissionFileId
|
||||
, transactionSubmission :: SubmissionId
|
||||
|
||||
@ -404,6 +404,7 @@ sinkSubmission userId mExists isUpdate = do
|
||||
submissionRatingTime = Nothing
|
||||
|
||||
sId <- insert Submission{..}
|
||||
audit $ TransactionSubmissionEdit sId sheetId
|
||||
-- now <- liftIO getCurrentTime
|
||||
-- insert $ SubmissionEdit userId now sId -- This is done automatically during 'sinkSubmission'' iff the given submission is nonempty
|
||||
return sId
|
||||
@ -472,15 +473,17 @@ sinkSubmission userId mExists isUpdate = do
|
||||
-> return ()
|
||||
_ -> do
|
||||
fileId <- insert file
|
||||
insert_ $ SubmissionFile
|
||||
subFileId <- insert $ SubmissionFile
|
||||
{ submissionFileSubmission = submissionId
|
||||
, submissionFileFile = fileId
|
||||
, submissionFileIsUpdate = isUpdate
|
||||
, submissionFileIsDeletion = False
|
||||
}
|
||||
audit $ TransactionSubmissionFileEdit subFileId submissionId fileId
|
||||
when undoneDeletion $ do
|
||||
touchSubmission
|
||||
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'
|
||||
@ -531,6 +534,7 @@ 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
|
||||
where
|
||||
a /~ b = not $ a ~~ b
|
||||
|
||||
@ -587,24 +591,24 @@ sinkSubmission userId mExists isUpdate = do
|
||||
case (shadowing, submissionFileIsUpdate) of
|
||||
([], _) -> deleteCascade fileId
|
||||
(E.Value f:_, False) -> do
|
||||
insert_ $ SubmissionFile
|
||||
sfId' <- insert $ SubmissionFile
|
||||
{ submissionFileSubmission = submissionId
|
||||
, submissionFileFile = f
|
||||
, submissionFileIsUpdate = True
|
||||
, submissionFileIsDeletion = True
|
||||
}
|
||||
audit $ TransactionSubmissionFileEdit sfId' submissionId f
|
||||
(E.Value f:_, True) -> do
|
||||
update sfId [ SubmissionFileFile =. f, SubmissionFileIsDeletion =. True ]
|
||||
deleteCascade fileId
|
||||
audit $ TransactionSubmissionFileDelete sfId submissionId f
|
||||
|
||||
if
|
||||
| isUpdate
|
||||
, isn't (_Wrapped . _Just) sinkSeenRating
|
||||
-> update submissionId
|
||||
[ SubmissionRatingTime =. Nothing
|
||||
, SubmissionRatingPoints =. Nothing
|
||||
, SubmissionRatingComment =. Nothing
|
||||
]
|
||||
-> do
|
||||
update submissionId [ SubmissionRatingTime =. Nothing, SubmissionRatingPoints =. Nothing, SubmissionRatingComment =. Nothing]
|
||||
-- audit $ TransactionSubmissionEdit submissionId sheetId -- TODO: get sheetId
|
||||
| isUpdate
|
||||
, getAny sinkSubmissionNotifyRating
|
||||
-> queueDBJob . JobQueueNotification $ NotificationSubmissionRated submissionId
|
||||
|
||||
Loading…
Reference in New Issue
Block a user