diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 50823ca7..592c006d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -42,10 +42,6 @@ class ApplicationController < ActionController::Base end def default_url_options - if request.domain == 'docuseal.com' - return { host: 'docuseal.com', protocol: ENV['FORCE_SSL'].present? ? 'https' : 'http' } - end - Docuseal.default_url_options end diff --git a/app/controllers/submissions_download_controller.rb b/app/controllers/submissions_download_controller.rb index eb216bc5..39dee165 100644 --- a/app/controllers/submissions_download_controller.rb +++ b/app/controllers/submissions_download_controller.rb @@ -65,7 +65,7 @@ class SubmissionsDownloadController < ApplicationController key: AccountConfig::DOCUMENT_FILENAME_FORMAT_KEY)&.value Submitters.select_attachments_for_download(submitter).map do |attachment| - ActiveStorage::Blob.proxy_url( + ActiveStorage::Blob.proxy_path( attachment.blob, expires_at: FILES_TTL.from_now.to_i, filename: Submitters.build_document_filename(submitter, attachment.blob, filename_format) @@ -83,7 +83,7 @@ class SubmissionsDownloadController < ApplicationController filename_format = AccountConfig.find_or_initialize_by(account_id: submitter.account_id, key: AccountConfig::DOCUMENT_FILENAME_FORMAT_KEY)&.value - ActiveStorage::Blob.proxy_url( + ActiveStorage::Blob.proxy_path( attachment.blob, expires_at: FILES_TTL.from_now.to_i, filename: Submitters.build_document_filename(submitter, attachment.blob, filename_format) diff --git a/app/controllers/submit_form_download_controller.rb b/app/controllers/submit_form_download_controller.rb index 3ebdc5e2..af9cbeb4 100644 --- a/app/controllers/submit_form_download_controller.rb +++ b/app/controllers/submit_form_download_controller.rb @@ -33,7 +33,7 @@ class SubmitFormDownloadController < ApplicationController end urls = attachments.map do |attachment| - ActiveStorage::Blob.proxy_url(attachment.blob, expires_at: FILES_TTL.from_now.to_i) + ActiveStorage::Blob.proxy_path(attachment.blob, expires_at: FILES_TTL.from_now.to_i) end render json: urls diff --git a/app/controllers/template_documents_controller.rb b/app/controllers/template_documents_controller.rb index b29a18f6..51fc4111 100644 --- a/app/controllers/template_documents_controller.rb +++ b/app/controllers/template_documents_controller.rb @@ -6,7 +6,7 @@ class TemplateDocumentsController < ApplicationController FILES_TTL = 5.minutes def index - render json: @template.schema_documents.map { |d| ActiveStorage::Blob.proxy_url(d.blob, expires_at: FILES_TTL.from_now.to_i) } + render json: @template.schema_documents.map { |d| ActiveStorage::Blob.proxy_path(d.blob, expires_at: FILES_TTL.from_now.to_i) } end def create diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index 18d2f570..976ddc78 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -14,12 +14,7 @@ class SubmitterMailer < ApplicationMailer @email_message = submitter.account.email_messages.find_by(uuid: submitter.preferences['email_message_uuid']) end - template_submitters_index = - if @email_message.blank? - build_submitter_preferences_index(@submitter) - else - {} - end + template_submitters_index = @email_message.blank? ? build_submitter_preferences_index(@submitter) : {} @body = @email_message&.body.presence || template_submitters_index.dig(@submitter.uuid, 'request_email_body').presence || @@ -36,6 +31,8 @@ class SubmitterMailer < ApplicationMailer reply_to = build_submitter_reply_to(@submitter) + maybe_set_custom_domain(@submitter) + I18n.with_locale(@current_account.locale) do subject = build_invite_subject(@subject, @email_config, submitter) @@ -133,6 +130,8 @@ class SubmitterMailer < ApplicationMailer assign_message_metadata('submitter_documents_copy', @submitter) reply_to = build_submitter_reply_to(submitter, email_config: @email_config, documents_copy_email: true) + maybe_set_custom_domain(@submitter) + I18n.with_locale(@current_account.locale) do subject = @subject.present? ? ReplaceEmailVariables.call(@subject, submitter:) : I18n.t(:your_document_copy) @@ -262,4 +261,10 @@ class SubmitterMailer < ApplicationMailer def fetch_config_email_body(email_config, _submitter = nil) email_config ? email_config.value['body'].presence : nil end + + def maybe_set_custom_domain(submitter) + if Docuseal.multitenant? && (config = AccountConfig.find_by(account_id: submitter.account_id, key: :custom_domain)) + @custom_domain = config.value + end + end end diff --git a/app/views/submissions/show.html.erb b/app/views/submissions/show.html.erb index 7940f337..acbaedad 100644 --- a/app/views/submissions/show.html.erb +++ b/app/views/submissions/show.html.erb @@ -21,7 +21,7 @@ <%= button_to button_title(title: t('unarchive'), disabled_with: t('unarchive')[0..-2], icon: svg_icon('rotate', class: 'w-6 h-6')), submission_unarchive_index_path(@submission), class: 'btn btn-primary btn-ghost text-base hidden md:flex' %> <% end %> <% if @submission.audit_trail.present? %> - + <%= svg_icon('external_link', class: 'w-6 h-6') %> <%= t('audit_log') %> diff --git a/app/views/submitter_mailer/documents_copy_email.html.erb b/app/views/submitter_mailer/documents_copy_email.html.erb index 3117481d..9e230cf2 100644 --- a/app/views/submitter_mailer/documents_copy_email.html.erb +++ b/app/views/submitter_mailer/documents_copy_email.html.erb @@ -5,7 +5,7 @@
<%= t('please_check_the_copy_of_your_name_in_the_email_attachments', name: @submitter.submission.name || @submitter.submission.template.name) %>
<%= t('alternatively_you_can_review_and_download_your_copy_using_the_link_below') %>
- <%= link_to @submitter.submission.name || @submitter.submission.template.name, submissions_preview_url(@submitter.submission.slug, { sig: @sig }.compact) %> + <%= link_to @submitter.submission.name || @submitter.submission.template.name, submissions_preview_url(@submitter.submission.slug, { sig: @sig, host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host]) }.compact) %>
<%= t('thanks') %>,
<%= @current_account.name %>
diff --git a/app/views/submitter_mailer/invitation_email.html.erb b/app/views/submitter_mailer/invitation_email.html.erb
index 06e38f30..408016df 100644
--- a/app/views/submitter_mailer/invitation_email.html.erb
+++ b/app/views/submitter_mailer/invitation_email.html.erb
@@ -1,12 +1,12 @@
<% if @body.present? %>
<%= render 'custom_content', content: @body, submitter: @submitter %>
<% if !@body.match?(ReplaceEmailVariables::SUBMITTER_LINK) && !@body.match?(ReplaceEmailVariables::SUBMITTER_ID) && !@body.match?(ReplaceEmailVariables::SUBMISSION_LINK) && !@body.match?(ReplaceEmailVariables::TEMPLATE_ID) && !@submitter.submission.source.in?(%w[api embed]) %>
-
<%= link_to nil, submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email')) %>
+<%= link_to nil, submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])) %>
<% end %> <% else %><%= t('hi_there') %>,
<%= I18n.t(@submitter.with_signature_fields? ? :you_have_been_invited_to_sign_the_name : :you_have_been_invited_to_submit_the_name_form, name: @submitter.submission.name || @submitter.submission.template.name) %>
-<%= link_to I18n.t(@submitter.with_signature_fields? ? :review_and_sign : :review_and_submit), submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])) %>
+<%= link_to I18n.t(@submitter.with_signature_fields? ? :review_and_sign : :review_and_submit), submit_form_url(slug: @submitter.slug, t: SubmissionEvents.build_tracking_param(@submitter, 'click_email'), host: @custom_domain || ENV.fetch('EMAIL_HOST', Docuseal.default_url_options[:host])) %>
<%= t('please_contact_us_by_replying_to_this_email_if_you_have_any_questions') %>
<%= t('thanks') %>,
<%= @current_account.name %>
diff --git a/app/views/templates/_submission.html.erb b/app/views/templates/_submission.html.erb
index 3c3348ec..bcfcd66c 100644
--- a/app/views/templates/_submission.html.erb
+++ b/app/views/templates/_submission.html.erb
@@ -81,7 +81,7 @@
<% elsif !submission.archived_at? && !template&.archived_at? && !submission.expired? && !submitter.declined_at? %>
<% if current_user.email == submitter.email %>