@@ -164,15 +164,14 @@ getSubmission.schema = {
164164}
165165
166166/**
167- * Function to download submission from S3
167+ * Function to get submission
168168 * @param {Object } authUser Authenticated User
169169 * @param {String } submissionId ID of the Submission which need to be retrieved
170- * @return {Object } Submission retrieved from S3
170+ * @return {Object } Submission retrieved
171171 */
172172function * downloadSubmission ( authUser , submissionId ) {
173173 const record = yield getSubmission ( authUser , submissionId )
174- const downloadedFile = yield helper . downloadFile ( record . url )
175- return { submission : record , file : downloadedFile }
174+ return { submission : record }
176175}
177176
178177/**
@@ -569,15 +568,20 @@ patchSubmission.schema = {
569568
570569/**
571570 * Function to delete submission
571+ * @param {Object } authUser Authenticated User
572572 * @param {String } submissionId submissionId which need to be deleted
573573 * @return {Promise }
574574 */
575- function * deleteSubmission ( submissionId ) {
575+ function * deleteSubmission ( authUser , submissionId ) {
576576 const exist = yield _getSubmission ( submissionId )
577577 if ( ! exist ) {
578578 throw new errors . HttpStatusError ( 404 , `Submission with ID = ${ submissionId } is not found` )
579579 }
580580
581+ if ( _ . intersection ( authUser . roles , [ 'Administrator' , 'administrator' ] ) . length === 0 && exist . memberId !== authUser . userId ) {
582+ throw new errors . HttpStatusError ( 403 , 'You do not have permissions to delete this submission.' )
583+ }
584+
581585 // Filter used to delete the record
582586 const filter = {
583587 TableName : table ,
@@ -598,6 +602,7 @@ function * deleteSubmission (submissionId) {
598602 payload : {
599603 resource : helper . camelize ( table ) ,
600604 id : submissionId
605+
601606 }
602607 }
603608
@@ -606,7 +611,8 @@ function * deleteSubmission (submissionId) {
606611}
607612
608613deleteSubmission . schema = {
609- submissionId : joi . string ( ) . guid ( ) . required ( )
614+ authUser : joi . object ( ) . required ( ) ,
615+ submissionId : joi . string ( ) . guid ( ) . required ( ) ,
610616}
611617
612618module . exports = {
0 commit comments