From 0741c879f1bb38c3931c691b7be8fbf36bde7094 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Wed, 27 May 2026 22:19:18 +0300 Subject: [PATCH] use expires_at with file links --- lib/submissions/generate_audit_trail.rb | 4 +++- lib/submissions/generate_preview_attachments.rb | 5 ++++- lib/submissions/generate_result_attachments.rb | 10 +++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/submissions/generate_audit_trail.rb b/lib/submissions/generate_audit_trail.rb index 2c16f044..d58a6c17 100644 --- a/lib/submissions/generate_audit_trail.rb +++ b/lib/submissions/generate_audit_trail.rb @@ -129,6 +129,8 @@ module Submissions with_submitter_timezone = configs.find { |c| c.key == AccountConfig::WITH_SUBMITTER_TIMEZONE_KEY }&.value == true with_timestamp_seconds = configs.find { |c| c.key == AccountConfig::WITH_TIMESTAMP_SECONDS_KEY }&.value == true + file_links_expire_at = Accounts.link_expires_at(submission.account) if with_file_links + timezone = account.timezone timezone = last_submitter.timezone || account.timezone if with_submitter_timezone @@ -408,7 +410,7 @@ module Submissions link = if with_file_links - ActiveStorage::Blob.proxy_url(attachment.blob) + ActiveStorage::Blob.proxy_url(attachment.blob, expires_at: file_links_expire_at) else r.submissions_preview_url(submission.slug, **Docuseal.default_url_options) end diff --git a/lib/submissions/generate_preview_attachments.rb b/lib/submissions/generate_preview_attachments.rb index cbfa373d..9b712733 100644 --- a/lib/submissions/generate_preview_attachments.rb +++ b/lib/submissions/generate_preview_attachments.rb @@ -29,6 +29,8 @@ module Submissions with_signature_id_reason = configs.find { |c| c.key == AccountConfig::WITH_SIGNATURE_ID_REASON_KEY }&.value != false + file_links_expire_at = Accounts.link_expires_at(submission.account) if with_file_links + pdfs_index = GenerateResultAttachments.build_pdfs_index(submission, flatten: is_flatten, incremental: is_rotate_incremental) @@ -42,7 +44,8 @@ module Submissions GenerateResultAttachments.fill_submitter_fields(s, submission.account, pdfs_index, with_signature_id:, is_flatten:, with_headings: index.zero?, with_submitter_timezone:, with_file_links:, - with_signature_id_reason:, with_timestamp_seconds:) + file_links_expire_at:, with_signature_id_reason:, + with_timestamp_seconds:) end template = submission.template diff --git a/lib/submissions/generate_result_attachments.rb b/lib/submissions/generate_result_attachments.rb index 5eba4a63..93398455 100644 --- a/lib/submissions/generate_result_attachments.rb +++ b/lib/submissions/generate_result_attachments.rb @@ -151,6 +151,8 @@ module Submissions with_signature_id_reason = configs.find { |c| c.key == AccountConfig::WITH_SIGNATURE_ID_REASON_KEY }&.value != false + file_links_expire_at = Accounts.link_expires_at(submitter.account) if with_file_links + pdfs_index = build_pdfs_index(submitter.submission, submitter:, flatten: is_flatten, incremental: is_rotate_incremental) @@ -198,12 +200,14 @@ module Submissions with_submitter_timezone:, with_file_links:, with_timestamp_seconds:, - with_signature_id_reason:) + with_signature_id_reason:, + file_links_expire_at:) end def fill_submitter_fields(submitter, account, pdfs_index, with_signature_id:, is_flatten:, with_headings: nil, with_submitter_timezone: false, with_signature_id_reason: true, - with_timestamp_seconds: false, with_file_links: nil) + with_timestamp_seconds: false, with_file_links: nil, + file_links_expire_at: Accounts.link_expires_at(account)) cell_layouters = Hash.new do |hash, valign| hash[valign] = HexaPDF::Layout::TextLayouter.new(text_valign: valign.to_sym, text_align: :center) end @@ -516,7 +520,7 @@ module Submissions url = if with_file_links - ActiveStorage::Blob.proxy_url(attachment.blob) + ActiveStorage::Blob.proxy_url(attachment.blob, expires_at: file_links_expire_at) else r.submissions_preview_url(submission.slug, **Docuseal.default_url_options) end