@@ -293,7 +293,9 @@ def get_auth(auth, **kwargs):
293293 raise HTTPError (http_status .HTTP_400_BAD_REQUEST )
294294
295295 node = AbstractNode .load (node_id ) or Preprint .load (node_id )
296- if not node :
296+ if node and node .is_deleted :
297+ raise HTTPError (http_status .HTTP_410_GONE )
298+ elif not node :
297299 raise HTTPError (http_status .HTTP_404_NOT_FOUND )
298300
299301 check_access (node , auth , action , cas_resp )
@@ -603,11 +605,12 @@ def addon_deleted_file(auth, target, error_type='BLAME_PROVIDER', **kwargs):
603605 # Allow file_node to be passed in so other views can delegate to this one
604606 file_node = kwargs .get ('file_node' ) or TrashedFileNode .load (kwargs .get ('trashed_id' ))
605607
606- deleted_by , deleted_on = None , None
608+ deleted_by , deleted_on , deleted = None , None , None
607609 if isinstance (file_node , TrashedFileNode ):
608610 deleted_by = file_node .deleted_by
609611 deleted_by_guid = file_node .deleted_by ._id if deleted_by else None
610612 deleted_on = file_node .deleted_on .strftime ('%c' ) + ' UTC'
613+ deleted = deleted_on
611614 if getattr (file_node , 'suspended' , False ):
612615 error_type = 'FILE_SUSPENDED'
613616 elif file_node .deleted_by is None or (auth .private_key and auth .private_link .anonymous ):
@@ -633,7 +636,8 @@ def addon_deleted_file(auth, target, error_type='BLAME_PROVIDER', **kwargs):
633636 file_name = markupsafe .escape (file_name ),
634637 deleted_by = markupsafe .escape (getattr (deleted_by , 'fullname' , None )),
635638 deleted_on = markupsafe .escape (deleted_on ),
636- provider = markupsafe .escape (provider_full )
639+ provider = markupsafe .escape (provider_full ),
640+ deleted = markupsafe .escape (deleted )
637641 )
638642 if deleted_by :
639643 format_params ['deleted_by_guid' ] = markupsafe .escape (deleted_by_guid )
0 commit comments