diff --git a/opentech/apply/funds/models/mixins.py b/opentech/apply/funds/models/mixins.py index 6ca8ac3e050ff521119c9363b663f37fdaababd7..388e238497eb6676d2de8544ecb30afc65446590 100644 --- a/opentech/apply/funds/models/mixins.py +++ b/opentech/apply/funds/models/mixins.py @@ -15,7 +15,13 @@ from opentech.apply.stream_forms.files import StreamFieldFile __all__ = ['AccessFormData'] -submission_storage = get_storage_class(getattr(settings, 'PRIVATE_FILE_STORAGE', None))() +private_file_storage = getattr(settings, 'PRIVATE_FILE_STORAGE', None) +submission_storage_class = get_storage_class(private_file_storage) + +if private_file_storage: + submission_storage = submission_storage_class(is_submission=True) +else: + submission_storage = submission_storage_class() class UnusedFieldException(Exception): diff --git a/opentech/apply/funds/views.py b/opentech/apply/funds/views.py index f263fef557ac183416a2344ba032240b3a9b4aaa..8b9b7f7d383db612bb4623f2f6b39040987225aa 100644 --- a/opentech/apply/funds/views.py +++ b/opentech/apply/funds/views.py @@ -62,13 +62,7 @@ from .tables import ( from .workflow import STAGE_CHANGE_ACTIONS, PHASES_MAPPING, review_statuses from .permissions import is_user_has_access_to_view_submission -private_file_storage = getattr(settings, 'PRIVATE_FILE_STORAGE', None) -submission_storage_class = get_storage_class(private_file_storage) - -if private_file_storage: - submission_storage = submission_storage_class(internal_url=False) -else: - submission_storage = submission_storage_class() +submission_storage = get_storage_class(getattr(settings, 'PRIVATE_FILE_STORAGE', None)) class BaseAdminSubmissionsTable(SingleTableMixin, FilterView): diff --git a/opentech/storage_backends.py b/opentech/storage_backends.py index d8404ca5a858157d02435fb3aa2c3880fd91e8c9..3a347b4cbf1c2194e2e77dc7fbac240935eb6e62 100644 --- a/opentech/storage_backends.py +++ b/opentech/storage_backends.py @@ -29,20 +29,18 @@ class PrivateMediaStorage(S3Boto3Storage): file_overwrite = False querystring_auth = True url_protocol = 'https:' - internal_url = True + is_submission = False def url(self, name, parameters=None, expire=None): - if self.internal_url: + if self.is_submission: try: name_parts = name.split('/') - # Create and return internal URL only for submissions - if name_parts[0] == 'submission': - return reverse( - 'apply:submissions:private_media_redirect', kwargs={ - 'submission_id': name_parts[1], 'field_id': name_parts[2], - 'file_name': name_parts[3] - } - ) + return reverse( + 'apply:submissions:private_media_redirect', kwargs={ + 'submission_id': name_parts[1], 'field_id': name_parts[2], + 'file_name': name_parts[3] + } + ) except IndexError: pass