ensure unique recipients
This commit is contained in:
@@ -57,6 +57,11 @@ class SubmissionsController < ApplicationController
|
||||
Submissions.send_signature_requests(submissions)
|
||||
|
||||
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
|
||||
|
||||
def destroy
|
||||
|
||||
@@ -24,7 +24,7 @@ class TemplatesPreferencesController < ApplicationController
|
||||
documents_copy_email_enabled documents_copy_email_attach_audit
|
||||
documents_copy_email_attach_documents documents_copy_email_reply_to
|
||||
completed_notification_email_attach_documents
|
||||
completed_redirect_url
|
||||
completed_redirect_url validate_unique_submitters
|
||||
submitters_order require_phone_2fa
|
||||
completed_notification_email_subject completed_notification_email_body
|
||||
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">
|
||||
<%= render 'list_form', template: @template %>
|
||||
</div>
|
||||
<%= render 'submissions/error' %>
|
||||
</div>
|
||||
<%= content_for(:modal_extra) %>
|
||||
<% end %>
|
||||
|
||||
@@ -335,6 +335,18 @@
|
||||
</div>
|
||||
<% 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">
|
||||
<%= button_tag button_title(title: t('save'), disabled_with: t('updating')), class: 'base-button', form: :submitters_form %>
|
||||
</div>
|
||||
|
||||
@@ -22,6 +22,7 @@ en: &en
|
||||
thanks: Thanks
|
||||
bcc_recipients: BCC recipients
|
||||
always_enforce_signing_order: Always enforce the signing order
|
||||
ensure_unique_recipients: Ensure unique recipients
|
||||
edit_per_party: Edit per party
|
||||
reply_to: Reply to
|
||||
pending_by_me: Pending by me
|
||||
@@ -795,6 +796,7 @@ en: &en
|
||||
read: Read your data
|
||||
|
||||
es: &es
|
||||
ensure_unique_recipients: Asegurar destinatarios únicos
|
||||
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>.
|
||||
send_verification_code: Enviar código de verificación
|
||||
@@ -1572,6 +1574,7 @@ es: &es
|
||||
read: Leer tus datos
|
||||
|
||||
it: &it
|
||||
ensure_unique_recipients: Assicurarsi destinatari unici
|
||||
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>.
|
||||
send_verification_code: Invia codice di verifica
|
||||
@@ -2348,6 +2351,7 @@ it: &it
|
||||
read: Leggi i tuoi dati
|
||||
|
||||
fr: &fr
|
||||
ensure_unique_recipients: Assurer l'unicité des destinataires
|
||||
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>.
|
||||
send_verification_code: Envoyer le code de vérification
|
||||
@@ -3126,6 +3130,7 @@ fr: &fr
|
||||
read: Lire vos données
|
||||
|
||||
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
|
||||
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
|
||||
@@ -3904,6 +3909,7 @@ pt: &pt
|
||||
read: Ler seus dados
|
||||
|
||||
de: &de
|
||||
ensure_unique_recipients: Stellen Sie einzigartige Empfänger sicher
|
||||
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.
|
||||
send_verification_code: Bestätigungscode senden
|
||||
|
||||
@@ -65,6 +65,12 @@ module Submissions
|
||||
raise BaseError, 'Defined more signing parties than in template'
|
||||
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?
|
||||
|
||||
maybe_add_invite_submitters(submission, template)
|
||||
|
||||
Reference in New Issue
Block a user