diff --git a/arkindex/process/serializers/files.py b/arkindex/process/serializers/files.py index a4edb516bcf1c5bc1147af27f48fc1669b25fff7..43a5900bc24584b431d13966d339843f7c53cf36 100644 --- a/arkindex/process/serializers/files.py +++ b/arkindex/process/serializers/files.py @@ -41,11 +41,11 @@ class DataFileSerializer(serializers.ModelSerializer): def get_s3_url(self, obj): if 'request' not in self.context: return - # Only allow the S3 URL for ponos tasks of Files processes or admins + # Only allow the S3 URL for ponos tasks of Files or IIIF processes or admins request = self.context['request'] if is_admin_or_ponos_task(request): request_process = get_process_from_task_auth(request) - if not request_process or request_process.mode == ProcessMode.Files: + if not request_process or request_process.mode in (ProcessMode.Files, ProcessMode.IIIF): return obj.s3_url diff --git a/arkindex/process/tests/test_datafile_api.py b/arkindex/process/tests/test_datafile_api.py index 2e849abf2d9ee5f46798202ad4ceba8bc9d95f73..d001863eac2c4cd3ab6b5ada5710b85a1c604b9f 100644 --- a/arkindex/process/tests/test_datafile_api.py +++ b/arkindex/process/tests/test_datafile_api.py @@ -157,7 +157,7 @@ class TestDataFileApi(FixtureAPITestCase): def test_retrieve_datafile_s3_url_task_process_mode(self, gen_url_mock): """ Ponos task authentication allows access to the S3 URL, only if the task's - parent process is of Files ProcessMode. + parent process has a Files or IIIF mode. """ user = User.objects.create(email='user2@test.test', display_name='User 2', verified_email=True) gen_url_mock.return_value = 'http://somewhere' @@ -170,7 +170,7 @@ class TestDataFileApi(FixtureAPITestCase): with self.settings(IMPORTS_WORKER_VERSION=str(self.import_worker_version.id)): process.start() cases = [ - (process_mode, 'http://somewhere' if process_mode == ProcessMode.Files else None) + (process_mode, 'http://somewhere' if process_mode in (ProcessMode.Files, ProcessMode.IIIF) else None) for process_mode in ProcessMode ] for process_mode, s3_url in cases: