From 8f8530562694cde48b9820f03f83cfc6eacd52f4 Mon Sep 17 00:00:00 2001 From: Ihor Sokhan Date: Thu, 31 Jul 2025 14:00:39 +0300 Subject: [PATCH 1/2] fixed earlier version download the newest version file --- addons/base/views.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/base/views.py b/addons/base/views.py index 2c61fdda232..09fc9702212 100644 --- a/addons/base/views.py +++ b/addons/base/views.py @@ -1006,14 +1006,17 @@ def persistent_file_download(auth, **kwargs): file = BaseFileNode.active.filter(_id=id_or_guid).first() if not file: guid = Guid.load(id_or_guid) - if guid: - referent = guid.referent - file = referent.primary_file if type(referent) is Preprint else referent - else: + if not guid: raise HTTPError(http_status.HTTP_404_NOT_FOUND, data={ 'message_short': 'File Not Found', 'message_long': 'The requested file could not be found.' }) + + referent = guid.referent + if type(referent) is Preprint: + referent, _ = Guid.load_referent(id_or_guid) + file = referent.primary_file + if not file.is_file: raise HTTPError(http_status.HTTP_400_BAD_REQUEST, data={ 'message_long': 'Downloading folders is not permitted.' From 5fb6b80709a90f42ede5df5364a4c58164af646f Mon Sep 17 00:00:00 2001 From: Ihor Sokhan Date: Thu, 31 Jul 2025 15:52:00 +0300 Subject: [PATCH 2/2] fixed tests --- addons/base/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base/views.py b/addons/base/views.py index 09fc9702212..2eee0ae0dd6 100644 --- a/addons/base/views.py +++ b/addons/base/views.py @@ -1012,8 +1012,8 @@ def persistent_file_download(auth, **kwargs): 'message_long': 'The requested file could not be found.' }) - referent = guid.referent - if type(referent) is Preprint: + file = guid.referent + if type(file) is Preprint: referent, _ = Guid.load_referent(id_or_guid) file = referent.primary_file