ensure unique recipients
This commit is contained in:
@@ -57,6 +57,11 @@ class SubmissionsController < ApplicationController
|
|||||||
Submissions.send_signature_requests(submissions)
|
Submissions.send_signature_requests(submissions)
|
||||||
|
|
||||||
redirect_to template_path(@template), notice: I18n.t('new_recipients_have_been_added')
|
redirect_to template_path(@template), notice: I18n.t('new_recipients_have_been_added')
|
||||||
|
rescue Submissions::CreateFromSubmitters::BaseError => e
|
||||||
|
render turbo_stream: turbo_stream.replace(:submitters_error,
|
||||||
|
partial: 'submissions/error',
|
||||||
|
locals: { error: e.message }),
|
||||||
|
status: :unprocessable_entity
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class TemplatesPreferencesController < ApplicationController
|
|||||||
documents_copy_email_enabled documents_copy_email_attach_audit
|
documents_copy_email_enabled documents_copy_email_attach_audit
|
||||||
documents_copy_email_attach_documents documents_copy_email_reply_to
|
documents_copy_email_attach_documents documents_copy_email_reply_to
|
||||||
completed_notification_email_attach_documents
|
completed_notification_email_attach_documents
|
||||||
completed_redirect_url
|
completed_redirect_url validate_unique_submitters
|
||||||
submitters_order require_phone_2fa
|
submitters_order require_phone_2fa
|
||||||
completed_notification_email_subject completed_notification_email_body
|
completed_notification_email_subject completed_notification_email_body
|
||||||
completed_notification_email_enabled completed_notification_email_attach_audit] +
|
completed_notification_email_enabled completed_notification_email_attach_audit] +
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<div id="submitters_error">
|
||||||
|
<% if local_assigns[:error] %>
|
||||||
|
<div class="text-center text-red-500">
|
||||||
|
<%= local_assigns[:error] %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
<div id="list" class="hidden">
|
<div id="list" class="hidden">
|
||||||
<%= render 'list_form', template: @template %>
|
<%= render 'list_form', template: @template %>
|
||||||
</div>
|
</div>
|
||||||
|
<%= render 'submissions/error' %>
|
||||||
</div>
|
</div>
|
||||||
<%= content_for(:modal_extra) %>
|
<%= content_for(:modal_extra) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -335,6 +335,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% if can?(:manage, :personalization_advanced) %>
|
||||||
|
<%= form_for @template, url: template_preferences_path(@template), method: :post, html: { autocomplete: 'off', class: 'mt-2' }, data: { close_on_submit: false } do |f| %>
|
||||||
|
<div class="flex items-center mt-4 justify-between w-full">
|
||||||
|
<span>
|
||||||
|
<%= t('ensure_unique_recipients') %>
|
||||||
|
</span>
|
||||||
|
<%= f.fields_for :preferences, Struct.new(:validate_unique_submitters).new(@template.preferences['validate_unique_submitters']) do |ff| %>
|
||||||
|
<%= ff.check_box :validate_unique_submitters, { class: 'toggle', onchange: 'this.form.requestSubmit()' }, 'true', '' %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
<div class="form-control mt-5 pb-2">
|
<div class="form-control mt-5 pb-2">
|
||||||
<%= button_tag button_title(title: t('save'), disabled_with: t('updating')), class: 'base-button', form: :submitters_form %>
|
<%= button_tag button_title(title: t('save'), disabled_with: t('updating')), class: 'base-button', form: :submitters_form %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ en: &en
|
|||||||
thanks: Thanks
|
thanks: Thanks
|
||||||
bcc_recipients: BCC recipients
|
bcc_recipients: BCC recipients
|
||||||
always_enforce_signing_order: Always enforce the signing order
|
always_enforce_signing_order: Always enforce the signing order
|
||||||
|
ensure_unique_recipients: Ensure unique recipients
|
||||||
edit_per_party: Edit per party
|
edit_per_party: Edit per party
|
||||||
reply_to: Reply to
|
reply_to: Reply to
|
||||||
pending_by_me: Pending by me
|
pending_by_me: Pending by me
|
||||||
@@ -795,6 +796,7 @@ en: &en
|
|||||||
read: Read your data
|
read: Read your data
|
||||||
|
|
||||||
es: &es
|
es: &es
|
||||||
|
ensure_unique_recipients: Asegurar destinatarios únicos
|
||||||
require_phone_2fa_to_open: Requiere 2FA por teléfono para abrir
|
require_phone_2fa_to_open: Requiere 2FA por teléfono para abrir
|
||||||
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: El remitente ha solicitado una autenticación de dos factores mediante una contraseña de un solo uso enviada a su número de teléfono <b>%{phone}</b>.
|
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: El remitente ha solicitado una autenticación de dos factores mediante una contraseña de un solo uso enviada a su número de teléfono <b>%{phone}</b>.
|
||||||
send_verification_code: Enviar código de verificación
|
send_verification_code: Enviar código de verificación
|
||||||
@@ -1572,6 +1574,7 @@ es: &es
|
|||||||
read: Leer tus datos
|
read: Leer tus datos
|
||||||
|
|
||||||
it: &it
|
it: &it
|
||||||
|
ensure_unique_recipients: Assicurarsi destinatari unici
|
||||||
require_phone_2fa_to_open: Richiedi l'autenticazione a due fattori tramite telefono per aprire
|
require_phone_2fa_to_open: Richiedi l'autenticazione a due fattori tramite telefono per aprire
|
||||||
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: Il mittente ha richiesto un'autenticazione a due fattori tramite una password monouso inviata al tuo numero di telefono <b>%{phone}</b>.
|
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: Il mittente ha richiesto un'autenticazione a due fattori tramite una password monouso inviata al tuo numero di telefono <b>%{phone}</b>.
|
||||||
send_verification_code: Invia codice di verifica
|
send_verification_code: Invia codice di verifica
|
||||||
@@ -2348,6 +2351,7 @@ it: &it
|
|||||||
read: Leggi i tuoi dati
|
read: Leggi i tuoi dati
|
||||||
|
|
||||||
fr: &fr
|
fr: &fr
|
||||||
|
ensure_unique_recipients: Assurer l'unicité des destinataires
|
||||||
require_phone_2fa_to_open: Requiert une 2FA par téléphone pour ouvrir
|
require_phone_2fa_to_open: Requiert une 2FA par téléphone pour ouvrir
|
||||||
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: L'expéditeur a demandé une authentification à deux facteurs via un mot de passe à usage unique envoyé à votre numéro de téléphone <b>%{phone}</b>.
|
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: L'expéditeur a demandé une authentification à deux facteurs via un mot de passe à usage unique envoyé à votre numéro de téléphone <b>%{phone}</b>.
|
||||||
send_verification_code: Envoyer le code de vérification
|
send_verification_code: Envoyer le code de vérification
|
||||||
@@ -3126,6 +3130,7 @@ fr: &fr
|
|||||||
read: Lire vos données
|
read: Lire vos données
|
||||||
|
|
||||||
pt: &pt
|
pt: &pt
|
||||||
|
ensure_unique_recipients: Garantir destinatários únicos
|
||||||
require_phone_2fa_to_open: Necessário autenticação de dois fatores via telefone para abrir
|
require_phone_2fa_to_open: Necessário autenticação de dois fatores via telefone para abrir
|
||||||
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: O remetente solicitou uma autenticação de dois fatores via senha de uso único enviada para seu número <b>%{phone}</b>.
|
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: O remetente solicitou uma autenticação de dois fatores via senha de uso único enviada para seu número <b>%{phone}</b>.
|
||||||
send_verification_code: Enviar código de verificação
|
send_verification_code: Enviar código de verificação
|
||||||
@@ -3904,6 +3909,7 @@ pt: &pt
|
|||||||
read: Ler seus dados
|
read: Ler seus dados
|
||||||
|
|
||||||
de: &de
|
de: &de
|
||||||
|
ensure_unique_recipients: Stellen Sie einzigartige Empfänger sicher
|
||||||
require_phone_2fa_to_open: Telefon-2FA zum Öffnen erforderlich
|
require_phone_2fa_to_open: Telefon-2FA zum Öffnen erforderlich
|
||||||
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: Der Absender hat eine Zwei-Faktor-Authentifizierung per Einmalpasswort angefordert, das an Ihre <b>%{phone}</b>-Telefonnummer gesendet wurde.
|
the_sender_has_requested_a_two_factor_authentication_via_one_time_password_sent_to_your_html: Der Absender hat eine Zwei-Faktor-Authentifizierung per Einmalpasswort angefordert, das an Ihre <b>%{phone}</b>-Telefonnummer gesendet wurde.
|
||||||
send_verification_code: Bestätigungscode senden
|
send_verification_code: Bestätigungscode senden
|
||||||
|
|||||||
@@ -65,6 +65,12 @@ module Submissions
|
|||||||
raise BaseError, 'Defined more signing parties than in template'
|
raise BaseError, 'Defined more signing parties than in template'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if template.preferences['validate_unique_submitters'] == true
|
||||||
|
submission_emails = submission.submitters.filter_map(&:email)
|
||||||
|
|
||||||
|
raise BaseError, 'Recipient emails should differ' if submission_emails.uniq.size != submission_emails.size
|
||||||
|
end
|
||||||
|
|
||||||
next if submission.submitters.blank?
|
next if submission.submitters.blank?
|
||||||
|
|
||||||
maybe_add_invite_submitters(submission, template)
|
maybe_add_invite_submitters(submission, template)
|
||||||
|
|||||||
Reference in New Issue
Block a user