allow to delegate
This commit is contained in:
@@ -175,6 +175,7 @@ module Accounts
|
||||
|
||||
def can_send_emails?(_account, **_params)
|
||||
return true if Docuseal.multitenant?
|
||||
return true if Rails.env.development?
|
||||
return true if ENV['SMTP_ADDRESS'].present?
|
||||
|
||||
EncryptedConfig.exists?(key: EncryptedConfig::EMAIL_SMTP_KEY)
|
||||
|
||||
@@ -246,33 +246,25 @@ module Submissions
|
||||
|
||||
next if submitter.blank?
|
||||
|
||||
completed_event =
|
||||
submission.submission_events.find { |e| e.submitter_id == submitter.id && e.complete_form? } ||
|
||||
SubmissionEvent.new
|
||||
submission_events = submission.submission_events.select { |e| e.submitter_id == submitter.id }
|
||||
|
||||
click_email_event =
|
||||
submission.submission_events.find { |e| e.submitter_id == submitter.id && e.click_email? }
|
||||
delegated_event = submission_events.select(&:delegate_form?).max_by(&:event_timestamp)
|
||||
|
||||
verify_email_event =
|
||||
submission.submission_events.find { |e| e.submitter_id == submitter.id && e.email_verified? }
|
||||
if delegated_event
|
||||
submission_events = submission_events.select { |e| e.event_timestamp > delegated_event.event_timestamp }
|
||||
end
|
||||
|
||||
is_phone_verified =
|
||||
submission.template_fields.any? do |e|
|
||||
e['type'] == 'phone' && e['submitter_uuid'] == submitter.uuid && submitter.values[e['uuid']].present?
|
||||
end
|
||||
completed_event = submission_events.find(&:complete_form?) || SubmissionEvent.new
|
||||
|
||||
verify_phone_event =
|
||||
submission.submission_events.find { |e| e.submitter_id == submitter.id && e.phone_verified? }
|
||||
click_email_event = submission_events.find(&:click_email?)
|
||||
|
||||
is_id_verified =
|
||||
submission.template_fields.any? do |e|
|
||||
e['type'] == 'verification' && e['submitter_uuid'] == submitter.uuid && submitter.values[e['uuid']].present?
|
||||
end
|
||||
verify_email_event = submission_events.find(&:email_verified?)
|
||||
|
||||
is_kba_passed =
|
||||
submission.template_fields.any? do |e|
|
||||
e['type'] == 'kba' && e['submitter_uuid'] == submitter.uuid && submitter.values[e['uuid']].present?
|
||||
end
|
||||
verify_phone_event = submission_events.find(&:phone_verified?)
|
||||
|
||||
is_id_verified = submission_events.any?(&:complete_verification?)
|
||||
|
||||
is_kba_passed = submission_events.any?(&:complete_kba?)
|
||||
|
||||
info_rows = [
|
||||
[
|
||||
@@ -291,7 +283,7 @@ module Submissions
|
||||
submitter.email && (click_email_event || verify_email_event) && {
|
||||
text: "#{I18n.t('email_verification')}: #{I18n.t('verified')}\n"
|
||||
},
|
||||
submitter.phone && (is_phone_verified || verify_phone_event) && {
|
||||
submitter.phone && verify_phone_event && {
|
||||
text: "#{I18n.t('phone_verification')}: #{I18n.t('verified')}\n"
|
||||
},
|
||||
is_id_verified && {
|
||||
@@ -446,15 +438,23 @@ module Submissions
|
||||
|
||||
composer.text(I18n.t('event_log'), font_size: 12, padding: [10, 0, 20, 0])
|
||||
|
||||
submitter_versions_index = submission.submitters.each_with_object({}) do |s, h|
|
||||
h[s.id] = s.submitter_versions.to_a.sort_by(&:created_at)
|
||||
end
|
||||
|
||||
events_data = submission.submission_events.sort_by(&:event_timestamp).filter_map do |event|
|
||||
next if event.event_type.in?(%w[bounce_email complaint_email])
|
||||
|
||||
submitter = submission.submitters.find { |e| e.id == event.submitter_id }
|
||||
versions = submitter_versions_index[submitter.id] || []
|
||||
active_version = versions.find { |v| v.created_at > event.event_timestamp }
|
||||
|
||||
submitter_name =
|
||||
if event.event_type.include?('sms') || event.event_type.include?('phone')
|
||||
event.data['phone'] || submitter.phone
|
||||
event.data['phone'] || active_version&.phone || submitter.phone
|
||||
else
|
||||
submitter.name || submitter.email || submitter.phone
|
||||
active_version&.name || active_version&.email || active_version&.phone ||
|
||||
submitter.name || submitter.email || submitter.phone
|
||||
end
|
||||
|
||||
text =
|
||||
@@ -473,6 +473,10 @@ module Submissions
|
||||
I18n.t("submission_event_names.#{event.event_type}_to_html", submitter_name:),
|
||||
"<b>#{I18n.t(:from)}</b> #{submission.created_by_user.full_name} #{submission.created_by_user.email}"
|
||||
].join("\n")
|
||||
elsif event.event_type == 'delegate_form'
|
||||
from = event.data['old_email'].presence ||
|
||||
versions.reverse.find { |v| v.created_at <= event.event_timestamp }&.then { |v| v.name || v.phone }
|
||||
I18n.t('submission_event_names.delegate_form_by_html', from:, to: event.data['email'])
|
||||
elsif event.event_type.include?('send_')
|
||||
I18n.t("submission_event_names.#{event.event_type}_to_html", submitter_name:)
|
||||
else
|
||||
|
||||
@@ -8,6 +8,7 @@ module Submitters
|
||||
AccountConfig::FORM_PREFILL_SIGNATURE_KEY,
|
||||
AccountConfig::WITH_SIGNATURE_ID,
|
||||
AccountConfig::ALLOW_TO_DECLINE_KEY,
|
||||
AccountConfig::ALLOW_TO_DELEGATE_KEY,
|
||||
AccountConfig::ENFORCE_SIGNING_ORDER_KEY,
|
||||
AccountConfig::REQUIRE_SIGNING_REASON_KEY,
|
||||
AccountConfig::REUSE_SIGNATURE_KEY,
|
||||
@@ -31,6 +32,7 @@ module Submitters
|
||||
prefill_signature = find_safe_value(configs, AccountConfig::FORM_PREFILL_SIGNATURE_KEY) != false
|
||||
reuse_signature = find_safe_value(configs, AccountConfig::REUSE_SIGNATURE_KEY) != false
|
||||
with_decline = find_safe_value(configs, AccountConfig::ALLOW_TO_DECLINE_KEY) != false
|
||||
with_delegate = find_safe_value(configs, AccountConfig::ALLOW_TO_DELEGATE_KEY) == true
|
||||
with_partial_download = find_safe_value(configs, AccountConfig::ALLOW_TO_PARTIAL_DOWNLOAD_KEY) != false
|
||||
with_signature_id = find_safe_value(configs, AccountConfig::WITH_SIGNATURE_ID) == true
|
||||
require_signing_reason = find_safe_value(configs, AccountConfig::REQUIRE_SIGNING_REASON_KEY) == true
|
||||
@@ -42,7 +44,7 @@ module Submitters
|
||||
policy_links = find_safe_value(configs, AccountConfig::POLICY_LINKS_KEY)
|
||||
|
||||
attrs = { completed_button:, with_typed_signature:, with_confetti:,
|
||||
reuse_signature:, with_decline:, with_partial_download:,
|
||||
reuse_signature:, with_decline:, with_delegate:, with_partial_download:,
|
||||
policy_links:, enforce_signing_order:, completed_message:,
|
||||
require_signing_reason:, prefill_signature:, with_submitter_timezone:,
|
||||
with_signature_id_reason:, with_signature_id:, with_field_labels:, with_timestamp_seconds: }
|
||||
|
||||
Reference in New Issue
Block a user