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