Fix remaining merge damage: restore Google SSO form, remove trusted signature row, GitHub stars, Discord/AI

- Restore Google SSO config form (from commit dacefffd UI, controller was intact)
- Restore 'Sign in with Google' button on sign-in page
- Delete _default_signature_row.html.erb (WaboSign Trusted Signature row — references
  self-hosted PKCS infrastructure WaboSign doesn't provide)
- Fix esign_settings/show.html.erb — remove dangling render of deleted partial
- Delete _github.html.erb (hardcoded 17k DocuSeal stars)
- Remove GitHub stars render and dangling _github_button render from navbar
- Remove Discord Community and AI Assistant links from settings nav support channels
- Remove 27 unused locale keys (wabosign_trusted_signature, ai_assistant, discord_community,
  sign_documents_with_trusted_certificate_... across 7 languages)
- Add comprehensive post-merge verification checklist to REBRANDING.md
pull/687/head
Wabo 2 weeks ago
parent 9c464f54ab
commit 3d5f38304c

@ -112,3 +112,64 @@ bin/sync-upstream <tag>
### Adding new preserved tokens ### Adding new preserved tokens
When upstream introduces a new SDK identifier, binary URL, or attribution surface that must survive the sweep, edit `PRESERVE` in [bin/rebrand-sync](bin/rebrand-sync) and `ALLOW_PATTERNS` in [bin/rebrand-check](bin/rebrand-check) together. The two must stay in sync — `rebrand-sync` decides what the sweep ignores, `rebrand-check` decides what CI tolerates. When upstream introduces a new SDK identifier, binary URL, or attribution surface that must survive the sweep, edit `PRESERVE` in [bin/rebrand-sync](bin/rebrand-sync) and `ALLOW_PATTERNS` in [bin/rebrand-check](bin/rebrand-check) together. The two must stay in sync — `rebrand-sync` decides what the sweep ignores, `rebrand-check` decides what CI tolerates.
## Post-Merge Verification Checklist
Run through these checks after every upstream merge. The earlier failures are caught by `bin/rebrand-check`; the later ones require manual inspection or `rspec`.
### Automatic (`bin/rebrand-check`)
- Rebrand check passes (no unintended DocuSeal references)
- RSpec suite passes (360+ examples, 0 failures)
### Footer / Attribution
- [ ] `app/views/shared/_powered_by.html.erb` links both WaboSign *and* DocuSeal (upstream AGPL credit)
- [ ] `app/views/shared/_email_attribution.html.erb` uses WaboSign product name, not DocuSeal
- [ ] `app/javascript/submission_form/completed.vue` still has the hardcoded DocuSeal upstream credit
### Logo / Branding
- [ ] `app/views/shared/_logo.html.erb` shows the WaboSign "W" mark (not the DocuSeal abstract shape)
- [ ] `public/favicon.svg`, `public/logo.svg` show the WaboSign "W" mark
- [ ] `app/views/shared/_account_logo.html.erb` renders attached logo or falls back to the W mark
### Console / Plans / Pro / Upgrade
- [ ] `app/controllers/console_redirect_controller.rb` does not exist
- [ ] `config/routes.rb` has no `console_redirect`, `upgrade`, or `manage` routes
- [ ] `app/controllers/sessions_controller.rb` has no `console_redirect_index_path` call
- [ ] `lib/wabosign.rb` has no `CONSOLE_URL`, `CLOUD_URL`, or `CDN_URL` constants
- [ ] `app/views/shared/_settings_nav.html.erb` has no "Plans" link or "Pro" badge
- [ ] `app/views/shared/_navbar.html.erb` has no "Console" link in dropdown
- [ ] `app/views/shared/_navbar_buttons.html.erb` has no "Upgrade" button
- [ ] No view file contains `unlock_with_docuseal_pro`, `activate_with_docuseal_pro`, or `console_redirect_index_path`
### Feature Gates (all freely available)
- [ ] `app/views/sms_settings/index.html.erb` shows provider form (BulkVS/Twilio/VoIP.ms/SignalWire) — not a placeholder
- [ ] `app/views/personalization_settings/_logo_placeholder.html.erb` shows upload form — not a Pro upsell
- [ ] `app/views/notifications_settings/_reminder_placeholder.html.erb` is empty (reminder form renders freely)
- [ ] `app/views/submissions/_bulk_send_placeholder.html.erb` is empty (bulk send freely available)
- [ ] `app/views/submissions/_send_sms_button.html.erb` is a functional button (not Pro-gated tooltip)
- [ ] `app/views/users/_role_select.html.erb` has no disabled options or Pro upsell link
- [ ] `app/views/accounts/show.html.erb` has no console-redirect Pro gates on Decline/Delegate toggles
### Google SSO
- [ ] `app/views/sso_settings/index.html.erb` shows the Google SSO config form (client_id, client_secret, allowed_domains)
- [ ] `app/views/devise/sessions/_omniauthable.html.erb` has the "Sign in with Google" button
- [ ] `app/views/sso_settings/_placeholder.html.erb` does not exist (was replaced by the real form)
- [ ] OmniAuth routes for `auth/google_oauth2` are present in `config/routes.rb`
### E-Signature Settings
- [ ] `app/views/esign_settings/_default_signature_row.html.erb` does not exist
- [ ] `config/locales/i18n.yml` has no `wabosign_trusted_signature` or `sign_documents_with_trusted_certificate_*` keys
### Social / Extras
- [ ] `app/views/shared/_github.html.erb` does not exist (no hardcoded star count)
- [ ] `app/views/shared/_navbar.html.erb` does not render `shared/github` or `shared/github_button`
- [ ] `app/views/shared/_settings_nav.html.erb` has no Discord or AI Assistant links in support channels
- [ ] `config/locales/i18n.yml` has no `discord_community` or `ai_assistant` keys
### SMS (independently developed)
- [ ] `app/views/sms_settings/index.html.erb` is the full provider form (not placeholder)
- [ ] `lib/sms.rb` exists with all 4 providers (BulkVS, Twilio, VoIP.ms, SignalWire)
- [ ] `lib/sms/providers/` directory exists with all 4 provider implementations
- [ ] `app/controllers/sms_settings_controller.rb` handles `test_message` action
- [ ] `app/models/encrypted_config.rb` has `SMS_CONFIGS_KEY = 'sms_configs'` constant
- [ ] `config/routes.rb` has the SMS routes with `test_message` collection route

@ -0,0 +1,12 @@
<% if Wabosign.google_sso_enabled? %>
<div class="divider my-4 text-sm opacity-60"><%= t('or') %></div>
<div class="form-control">
<%= button_to user_google_oauth2_omniauth_authorize_path,
method: :post,
data: { turbo: false },
class: 'base-button !bg-white !text-base-content border border-base-300 flex items-center justify-center gap-2' do %>
<img src="/google_g.svg" alt="" width="20" height="20" class="w-5 h-5">
<span><%= t('sign_in_with_google') %></span>
<% end %>
</div>
<% end %>

@ -1,19 +0,0 @@
<tr scope="row" class="group">
<td class="flex items-center space-x-1">
<%= svg_icon('discount_check_filled', class: 'w-6 h-6 text-green-500') %>
<span class="flex items-center">
<%= t('wabosign_trusted_signature') %>
<div class="tooltip ml-1" data-tip="<%= t('sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature') %>">
<%= svg_icon('circle_question', class: 'w-4 h-4 stroke-1') %>
</div>
</span>
</td>
<td></td>
<td>
<%= button_to settings_esign_path, method: :put, params: { name: Wabosign::AATL_CERT_NAME }, class: 'btn btn-outline btn-neutral btn-xs whitespace-nowrap', title: t('make_default'), disabled: true do %>
<%= t('make_default') %>
<% end %>
</td>
<td>
</td>
</tr>

@ -99,9 +99,6 @@
</td> </td>
</tr> </tr>
<% end %> <% end %>
<% unless Wabosign.multitenant? %>
<%= render 'default_signature_row' %>
<% end %>
</tbody> </tbody>
</table> </table>
</div> </div>

@ -1,6 +0,0 @@
<a target="_blank" href="<%= Wabosign::GITHUB_URL %>" rel="noopener noreferrer nofollow" class="relative flex items-center rounded-full px-2 py-0.5 text-xs leading-4 mt-1 text-base-content border border-base-300 tooltip tooltip-bottom" data-tip="Give a star on GitHub">
<span class="flex items-center justify-between space-x-0.5 font-medium">
<%= svg_icon('start', class: 'h-3 w-3') %>
<span>17k</span>
</span>
</a>

@ -4,9 +4,6 @@
<a href="<%= root_path %>" class="text-2xl font-bold items-center flex space-x-2"> <a href="<%= root_path %>" class="text-2xl font-bold items-center flex space-x-2">
<%= render 'shared/title' %> <%= render 'shared/title' %>
</a> </a>
<span class="hidden sm:inline">
<%= render 'shared/github' if request.path.starts_with?('/settings') %>
</span>
</div> </div>
<% if signed_in? %> <% if signed_in? %>
<div class="space-x-4 flex items-center"> <div class="space-x-4 flex items-center">
@ -14,9 +11,6 @@
<a href="https://wabosign.com/sign_up" class="btn btn-neutral btn-sm btn-outline inline-flex items-center justify-center" style="height: 37px"> <a href="https://wabosign.com/sign_up" class="btn btn-neutral btn-sm btn-outline inline-flex items-center justify-center" style="height: 37px">
<%= t('sign_up') %> <%= t('sign_up') %>
</a> </a>
<span class="hidden sm:inline">
<%= render 'shared/github_button' %>
</span>
<% else %> <% else %>
<div class="flex items-center justify-center space-x-4 mr-1"> <div class="flex items-center justify-center space-x-4 mr-1">
<%= render 'shared/navbar_buttons' %> <%= render 'shared/navbar_buttons' %>

@ -102,18 +102,6 @@
<%= svg_icon('brand_github', class: 'w-8 h-8') %> <%= svg_icon('brand_github', class: 'w-8 h-8') %>
</a> </a>
</div> </div>
<div class="tooltip" data-tip="<%= t('discord_community') %>">
<a href="<%= Wabosign::DISCORD_URL %>" target="_blank" class="btn btn-circle btn-primary btn-md">
<%= svg_icon('brand_discord', class: 'w-8 h-8') %>
</a>
</div>
<%= capture do %>
<div class="tooltip" data-tip="<%= t('ai_assistant') %>">
<a href="<%= Wabosign::CHATGPT_URL %>" target="_blank" class="btn btn-circle btn-primary btn-md">
<%= svg_icon('brand_openai', class: 'w-8 h-8') %>
</a>
</div>
<% end %>
</div> </div>
<a href="mailto:<%= Wabosign::SUPPORT_EMAIL %>" target="_blank" class="w-full block mt-4 underline text-center"> <a href="mailto:<%= Wabosign::SUPPORT_EMAIL %>" target="_blank" class="w-full block mt-4 underline text-center">
<%= Wabosign::SUPPORT_EMAIL %> <%= Wabosign::SUPPORT_EMAIL %>

@ -1,11 +0,0 @@
<div class="alert">
<%= svg_icon('info_circle', class: 'w-6 h-6') %>
<div>
<p class="font-bold">
<%= t('single_sign_on_with_saml_2_0') %>
</p>
<p class="text-gray-700">
Configure SAML SSO via the <code>SAML_CONFIGS</code> environment variable or through the encrypted config.
</p>
</div>
</div>

@ -1,8 +1,77 @@
<div class="flex flex-wrap space-y-4 md:flex-nowrap md:space-y-0"> <div class="flex flex-wrap space-y-4 md:flex-nowrap md:space-y-0">
<%= render 'shared/settings_nav' %> <%= render 'shared/settings_nav' %>
<div class="flex-grow max-w-xl mx-auto"> <div class="flex-grow max-w-xl mx-auto">
<h1 class="text-4xl font-bold mb-4">SAML SSO</h1> <h1 class="text-4xl font-bold mb-4">Google SSO</h1>
<%= render 'placeholder' %>
<% creds = Wabosign.google_sso_credentials %>
<% value = @encrypted_config.value || {} %>
<% if creds[:source] == :env %>
<div class="alert mb-4">
<%= svg_icon('info_circle', class: 'w-6 h-6') %>
<div>
<p class="font-bold">Google SSO is configured via environment variables</p>
<p class="text-gray-700">
<code>GOOGLE_CLIENT_ID</code> and <code>GOOGLE_CLIENT_SECRET</code> are set on the running process, so ENV-driven configuration is in effect. ENV always takes precedence over anything saved on this page. Unset the env vars (and restart) to switch to the values configured here.
</p>
</div>
</div>
<% elsif creds[:source] == :db %>
<div class="alert alert-success mb-4">
<%= svg_icon('discount_check_filled', class: 'w-6 h-6') %>
<div>
<p class="font-bold">Google SSO is enabled</p>
<p class="text-gray-700">
<% if creds[:allowed_domains].any? %>
Allowed Workspace domain<%= 's' if creds[:allowed_domains].size > 1 %>: <code><%= creds[:allowed_domains].join(', ') %></code>.
<% else %>
<strong>Warning:</strong> no domain allowlist is set. Any Google account can sign in.
<% end %>
</p>
</div>
</div>
<% else %>
<div class="alert mb-4">
<%= svg_icon('info_circle', class: 'w-6 h-6') %>
<div>
<p class="font-bold">Google SSO is not configured</p>
<p class="text-gray-700">
Fill in your Google Cloud OAuth client details below. The OAuth redirect URI to register in <a href="https://console.cloud.google.com/apis/credentials" target="_blank" rel="noopener" class="link">Google Cloud Console</a> is
<code><%= "#{root_url}auth/google_oauth2/callback" rescue '/auth/google_oauth2/callback' %></code>.
</p>
</div>
</div>
<% end %>
<%= form_for @encrypted_config, url: settings_sso_index_path, method: :post, html: { autocomplete: 'off', class: 'space-y-4' } do |f| %>
<%= f.fields_for :value do |ff| %>
<div class="form-control">
<label class="label cursor-pointer" for="encrypted_config_value_enabled">
<span class="label-text font-medium">Enable Google SSO</span>
<%= ff.check_box :enabled, { class: 'toggle', checked: value['enabled'] == true }, '1', '0' %>
</label>
</div>
<div class="form-control">
<%= ff.label :client_id, 'Client ID', class: 'label' %>
<%= ff.text_field :client_id, value: value['client_id'], class: 'base-input', placeholder: '1234567890.apps.googleusercontent.com' %>
</div>
<div class="form-control">
<%= ff.label :client_secret, 'Client Secret', class: 'label' %>
<%= ff.password_field :client_secret, class: 'base-input', placeholder: value['client_secret'].present? ? '*************' : 'GOCSPX-…' %>
<% if value['client_secret'].present? %>
<span class="label-text-alt mt-1 opacity-70">Leave blank to keep the saved secret.</span>
<% end %>
</div>
<div class="form-control">
<%= ff.label :allowed_domains_csv, 'Allowed Workspace Domains', class: 'label' %>
<%= ff.text_field :allowed_domains_csv, value: Array(value['allowed_domains']).join(', '), class: 'base-input', placeholder: 'wabo.cc, partner.example' %>
<span class="label-text-alt mt-1 opacity-70">Comma-separated. Only Google accounts whose Workspace <code>hd</code> claim matches one of these domains can sign in. Leave blank to allow any Google account (not recommended).</span>
</div>
<% end %>
<div class="form-control pt-2">
<%= f.button button_title(title: t('save'), disabled_with: t('saving')), class: 'base-button' %>
</div>
<% end %>
</div> </div>
<div class="w-0 md:w-52"></div> <div class="w-0 md:w-52"></div>
</div> </div>

@ -80,7 +80,6 @@ en: &en
accessiable_by: Accessible by accessiable_by: Accessible by
team_access: Team access team_access: Team access
document_download_filename_format: Document download filename format document_download_filename_format: Document download filename format
wabosign_trusted_signature: WaboSign Trusted Signature
hello_name: Hi %{name} hello_name: Hi %{name}
you_are_invited_to_product_name: You are invited to %{product_name} you_are_invited_to_product_name: You are invited to %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'You have been invited to %{account_name} %{product_name}. Please sign up using the link below:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'You have been invited to %{account_name} %{product_name}. Please sign up using the link below:'
@ -88,7 +87,6 @@ en: &en
sent_using_product_name_free_document_signing_html: 'Sent using <a href="%{product_url}">%{product_name}</a> free document signing.' sent_using_product_name_free_document_signing_html: 'Sent using <a href="%{product_url}">%{product_name}</a> free document signing.'
sent_with_docuseal_pro_html: 'Sent with <a href="%{product_url}">WaboSign Pro</a>' sent_with_docuseal_pro_html: 'Sent with <a href="%{product_url}">WaboSign Pro</a>'
show_send_with_docuseal_pro_attribution_in_emails_html: Show "Sent with <span class="link">WaboSign Pro</span>" attribution in emails show_send_with_docuseal_pro_attribution_in_emails_html: Show "Sent with <span class="link">WaboSign Pro</span>" attribution in emails
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Sign documents with trusted certificate provided by WaboSign. Your documents and data are never shared with WaboSign. PDF checksum is provided to generate a trusted signature.
you_have_been_invited_to_submit_the_name_form: 'You have been invited to submit the "%{name}" form.' you_have_been_invited_to_submit_the_name_form: 'You have been invited to submit the "%{name}" form.'
you_have_been_invited_to_sign_the_name: 'You have been invited to sign the "%{name}".' you_have_been_invited_to_sign_the_name: 'You have been invited to sign the "%{name}".'
alternatively_you_can_review_and_download_your_copy_using_the_link_below: "Alternatively, you can review and download your copy using the link below:" alternatively_you_can_review_and_download_your_copy_using_the_link_below: "Alternatively, you can review and download your copy using the link below:"
@ -386,8 +384,6 @@ en: &en
leave: Leave leave: Leave
impersonated_as: Impersonated as impersonated_as: Impersonated as
ask_ai: Ask AI ask_ai: Ask AI
ai_assistant: AI Assistant
discord_community: Discord Community
integrations: Integrations integrations: Integrations
teams: Teams teams: Teams
tenants: Tenants tenants: Tenants
@ -1136,7 +1132,6 @@ es: &es
awaiting_completion_by_the_other_party: "Esperando la finalización por la otra parte" awaiting_completion_by_the_other_party: "Esperando la finalización por la otra parte"
enforce_recipients_order: 'Hacer cumplir el orden de los destinatarios' enforce_recipients_order: 'Hacer cumplir el orden de los destinatarios'
first_party: 'Primera Parte' first_party: 'Primera Parte'
wabosign_trusted_signature: Firma de confianza WaboSign
hello_name: Hola %{name} hello_name: Hola %{name}
you_are_invited_to_product_name: Estás invitado a %{product_name} you_are_invited_to_product_name: Estás invitado a %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Has sido invitado a %{account_name} %{product_name}. Por favor, regístrate usando el enlace a continuación:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Has sido invitado a %{account_name} %{product_name}. Por favor, regístrate usando el enlace a continuación:'
@ -1144,7 +1139,6 @@ es: &es
sent_using_product_name_free_document_signing_html: 'Enviado usando la firma de documentos gratuita de <a href="%{product_url}">%{product_name}</a>.' sent_using_product_name_free_document_signing_html: 'Enviado usando la firma de documentos gratuita de <a href="%{product_url}">%{product_name}</a>.'
sent_with_docuseal_pro_html: 'Enviado con <a href="%{product_url}">WaboSign Pro</a>' sent_with_docuseal_pro_html: 'Enviado con <a href="%{product_url}">WaboSign Pro</a>'
show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar el mensaje "Enviado con <span class="link">WaboSign Pro</span>" en los correos electrónicos show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar el mensaje "Enviado con <span class="link">WaboSign Pro</span>" en los correos electrónicos
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Firme documentos con un certificado de confianza proporcionado por WaboSign. Sus documentos y datos nunca se comparten con WaboSign. Se proporciona un checksum de PDF para generar una firma de confianza.
hi_there: Hola hi_there: Hola
thanks: Gracias thanks: Gracias
you_have_been_invited_to_submit_the_name_form: 'Has sido invitado/a a enviar el formulario "%{name}".' you_have_been_invited_to_submit_the_name_form: 'Has sido invitado/a a enviar el formulario "%{name}".'
@ -1442,8 +1436,6 @@ es: &es
leave: Salir leave: Salir
impersonated_as: Accediendo como impersonated_as: Accediendo como
ask_ai: Preguntar a la IA ask_ai: Preguntar a la IA
ai_assistant: Asistente IA
discord_community: Comunidad en Discord
integrations: Integraciones integrations: Integraciones
teams: Equipos teams: Equipos
tenants: Inquilinos tenants: Inquilinos
@ -2189,7 +2181,6 @@ it: &it
awaiting_completion_by_the_other_party: "In attesa di completamento da parte dell'altra parte" awaiting_completion_by_the_other_party: "In attesa di completamento da parte dell'altra parte"
enforce_recipients_order: "Applicare l'ordine dei destinatari" enforce_recipients_order: "Applicare l'ordine dei destinatari"
first_party: 'Prima parte' first_party: 'Prima parte'
wabosign_trusted_signature: "Firma Fiduciaria WaboSign"
hello_name: Ciao %{name} hello_name: Ciao %{name}
you_are_invited_to_product_name: Sei stato invitato a %{product_name} you_are_invited_to_product_name: Sei stato invitato a %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sei stato invitato a %{account_name} %{product_name}. Registrati utilizzando il link qui sotto:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sei stato invitato a %{account_name} %{product_name}. Registrati utilizzando il link qui sotto:'
@ -2197,7 +2188,6 @@ it: &it
sent_using_product_name_free_document_signing_html: 'Inviato utilizzando la firma di documenti gratuita di <a href="%{product_url}">%{product_name}</a>.' sent_using_product_name_free_document_signing_html: 'Inviato utilizzando la firma di documenti gratuita di <a href="%{product_url}">%{product_name}</a>.'
sent_with_docuseal_pro_html: 'Inviato con <a href="%{product_url}">WaboSign Pro</a>' sent_with_docuseal_pro_html: 'Inviato con <a href="%{product_url}">WaboSign Pro</a>'
show_send_with_docuseal_pro_attribution_in_emails_html: Mostra la dicitura "Inviato con <span class="link">WaboSign Pro</span>" nelle email show_send_with_docuseal_pro_attribution_in_emails_html: Mostra la dicitura "Inviato con <span class="link">WaboSign Pro</span>" nelle email
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: "Firma documenti con un certificato di fiducia fornito da WaboSign. I tuoi documenti e i tuoi dati non vengono mai condivisi con WaboSign. Il checksum PDF è fornito per generare una firma di fiducia."
hi_there: Ciao hi_there: Ciao
thanks: Grazie thanks: Grazie
you_have_been_invited_to_submit_the_name_form: 'Sei stato invitato a inviare il modulo "%{name}".' you_have_been_invited_to_submit_the_name_form: 'Sei stato invitato a inviare il modulo "%{name}".'
@ -2495,8 +2485,6 @@ it: &it
leave: Lascia leave: Lascia
impersonated_as: Impersonato come impersonated_as: Impersonato come
ask_ai: "Chiedi all'IA" ask_ai: "Chiedi all'IA"
ai_assistant: Assistente IA
discord_community: Comunità Discord
integrations: Integrazioni integrations: Integrazioni
teams: Squadre teams: Squadre
tenants: Tenant tenants: Tenant
@ -3242,7 +3230,6 @@ fr: &fr
awaiting_completion_by_the_other_party: En attente de finalisation par lautre partie awaiting_completion_by_the_other_party: En attente de finalisation par lautre partie
enforce_recipients_order: Imposer lordre des destinataires enforce_recipients_order: Imposer lordre des destinataires
first_party: Première partie first_party: Première partie
wabosign_trusted_signature: Signature de confiance WaboSign
hello_name: Bonjour %{name} hello_name: Bonjour %{name}
you_are_invited_to_product_name: Vous êtes invité à %{product_name} you_are_invited_to_product_name: Vous êtes invité à %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Vous avez été invité à %{account_name} %{product_name}. Veuillez vous inscrire en utilisant le lien ci-dessous :' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Vous avez été invité à %{account_name} %{product_name}. Veuillez vous inscrire en utilisant le lien ci-dessous :'
@ -3250,7 +3237,6 @@ fr: &fr
sent_using_product_name_free_document_signing_html: Envoyé avec <a href="%{product_url}">%{product_name}</a> signature de documents gratuite. sent_using_product_name_free_document_signing_html: Envoyé avec <a href="%{product_url}">%{product_name}</a> signature de documents gratuite.
sent_with_docuseal_pro_html: Envoyé avec <a href="%{product_url}">WaboSign Pro</a> sent_with_docuseal_pro_html: Envoyé avec <a href="%{product_url}">WaboSign Pro</a>
show_send_with_docuseal_pro_attribution_in_emails_html: Afficher lattribution "Envoyé avec <span class="link">WaboSign Pro</span>" dans les emails show_send_with_docuseal_pro_attribution_in_emails_html: Afficher lattribution "Envoyé avec <span class="link">WaboSign Pro</span>" dans les emails
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Signez des documents avec un certificat de confiance fourni par WaboSign. Vos documents et données ne sont jamais partagés avec WaboSign. Une empreinte (checksum) PDF est fournie pour générer une signature de confiance.
hi_there: Bonjour hi_there: Bonjour
thanks: Merci thanks: Merci
you_have_been_invited_to_submit_the_name_form: Vous avez été invité à soumettre le formulaire "%{name}". you_have_been_invited_to_submit_the_name_form: Vous avez été invité à soumettre le formulaire "%{name}".
@ -3548,8 +3534,6 @@ fr: &fr
leave: Quitter leave: Quitter
impersonated_as: Connecté en tant que impersonated_as: Connecté en tant que
ask_ai: Demander à lIA ask_ai: Demander à lIA
ai_assistant: Assistant IA
discord_community: Communauté Discord
integrations: Intégrations integrations: Intégrations
teams: Équipes teams: Équipes
tenants: Locataires tenants: Locataires
@ -4292,7 +4276,6 @@ pt: &pt
awaiting_completion_by_the_other_party: "Aguardando a conclusão pela outra parte" awaiting_completion_by_the_other_party: "Aguardando a conclusão pela outra parte"
enforce_recipients_order: 'Forçar a ordem dos destinatários' enforce_recipients_order: 'Forçar a ordem dos destinatários'
first_party: 'Primeira Parte' first_party: 'Primeira Parte'
wabosign_trusted_signature: Assinatura Confiável WaboSign
hello_name: Olá %{name} hello_name: Olá %{name}
you_are_invited_to_product_name: Você está convidado para %{product_name} you_are_invited_to_product_name: Você está convidado para %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Você foi convidado para %{account_name} %{product_name}. Inscreva-se usando o link abaixo:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Você foi convidado para %{account_name} %{product_name}. Inscreva-se usando o link abaixo:'
@ -4300,7 +4283,6 @@ pt: &pt
sent_using_product_name_free_document_signing_html: 'Enviado usando a assinatura gratuita de documentos de <a href="%{product_url}">%{product_name}</a>.' sent_using_product_name_free_document_signing_html: 'Enviado usando a assinatura gratuita de documentos de <a href="%{product_url}">%{product_name}</a>.'
sent_with_docuseal_pro_html: 'Enviado com <a href="%{product_url}">WaboSign Pro</a>' sent_with_docuseal_pro_html: 'Enviado com <a href="%{product_url}">WaboSign Pro</a>'
show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar "Enviado com <span class="link">WaboSign Pro</span>" nos e-mails show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar "Enviado com <span class="link">WaboSign Pro</span>" nos e-mails
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Assine documentos com certificado confiável fornecido pela WaboSign. Seus documentos e dados nunca são compartilhados com a WaboSign. O checksum do PDF é fornecido para gerar uma assinatura confiável.
hi_there: Olá hi_there: Olá
thanks: Obrigado thanks: Obrigado
you_have_been_invited_to_submit_the_name_form: 'Você foi convidado a submeter o formulário "%{name}".' you_have_been_invited_to_submit_the_name_form: 'Você foi convidado a submeter o formulário "%{name}".'
@ -4598,8 +4580,6 @@ pt: &pt
leave: Deixar leave: Deixar
impersonated_as: Acessando como impersonated_as: Acessando como
ask_ai: Perguntar para a IA ask_ai: Perguntar para a IA
ai_assistant: Assistente de IA
discord_community: Comunidade Discord
integrations: Integrações integrations: Integrações
teams: Equipes teams: Equipes
tenants: Locatários tenants: Locatários
@ -5345,7 +5325,6 @@ de: &de
accessiable_by: Zugänglich für accessiable_by: Zugänglich für
team_access: Teamzugang team_access: Teamzugang
document_download_filename_format: Format des Dateinamens beim Herunterladen von Dokumenten document_download_filename_format: Format des Dateinamens beim Herunterladen von Dokumenten
wabosign_trusted_signature: WaboSign-Vertrauenssignatur
hello_name: Hallo %{name} hello_name: Hallo %{name}
you_are_invited_to_product_name: Sie sind zu %{product_name} eingeladen you_are_invited_to_product_name: Sie sind zu %{product_name} eingeladen
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sie wurden zu %{account_name} %{product_name} eingeladen. Bitte registrieren Sie sich über den folgenden Link:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'Sie wurden zu %{account_name} %{product_name} eingeladen. Bitte registrieren Sie sich über den folgenden Link:'
@ -5353,7 +5332,6 @@ de: &de
sent_using_product_name_free_document_signing_html: 'Gesendet mit der kostenlosen Dokumentensignierung von <a href="%{product_url}">%{product_name}</a>.' sent_using_product_name_free_document_signing_html: 'Gesendet mit der kostenlosen Dokumentensignierung von <a href="%{product_url}">%{product_name}</a>.'
sent_with_docuseal_pro_html: Gesendet mit <a href="%{product_url}">WaboSign Pro</a> sent_with_docuseal_pro_html: Gesendet mit <a href="%{product_url}">WaboSign Pro</a>
show_send_with_docuseal_pro_attribution_in_emails_html: '"Gesendet mit <span class="link">WaboSign Pro</span>" in E-Mails anzeigen' show_send_with_docuseal_pro_attribution_in_emails_html: '"Gesendet mit <span class="link">WaboSign Pro</span>" in E-Mails anzeigen'
sign_documents_with_trusted_certificate_provided_by_docu_seal_your_documents_and_data_are_never_shared_with_docu_seal_p_d_f_checksum_is_provided_to_generate_a_trusted_signature: Unterzeichnen Sie Dokumente mit einem vertrauenswürdigen Zertifikat von WaboSign. Ihre Dokumente und Daten werden niemals mit WaboSign geteilt. Eine PDF-Prüfsumme wird bereitgestellt, um eine vertrauenswürdige Signatur zu generieren.
you_have_been_invited_to_submit_the_name_form: 'Sie wurden eingeladen, das Formular "%{name}" einzureichen.' you_have_been_invited_to_submit_the_name_form: 'Sie wurden eingeladen, das Formular "%{name}" einzureichen.'
you_have_been_invited_to_sign_the_name: 'Sie wurden eingeladen, "%{name}" zu unterschreiben.' you_have_been_invited_to_sign_the_name: 'Sie wurden eingeladen, "%{name}" zu unterschreiben.'
alternatively_you_can_review_and_download_your_copy_using_the_link_below: 'Alternativ können Sie Ihre Kopie über den untenstehenden Link ansehen und herunterladen:' alternatively_you_can_review_and_download_your_copy_using_the_link_below: 'Alternativ können Sie Ihre Kopie über den untenstehenden Link ansehen und herunterladen:'
@ -5651,8 +5629,6 @@ de: &de
leave: Verlassen leave: Verlassen
impersonated_as: Eingeloggt als impersonated_as: Eingeloggt als
ask_ai: KI fragen ask_ai: KI fragen
ai_assistant: KI-Assistent
discord_community: Discord-Community
integrations: Integrationen integrations: Integrationen
teams: Teams teams: Teams
tenants: Mandanten tenants: Mandanten
@ -6802,7 +6778,6 @@ nl: &nl
accessiable_by: Toegankelijk voor accessiable_by: Toegankelijk voor
team_access: Teamtoegang team_access: Teamtoegang
document_download_filename_format: Bestandsnaamformaat voor documentdownload document_download_filename_format: Bestandsnaamformaat voor documentdownload
wabosign_trusted_signature: WaboSign Vertrouwde handtekening
hello_name: Hallo %{name} hello_name: Hallo %{name}
you_are_invited_to_product_name: U bent uitgenodigd voor %{product_name} you_are_invited_to_product_name: U bent uitgenodigd voor %{product_name}
you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'U bent uitgenodigd voor %{account_name} %{product_name}. Meld u aan via de onderstaande link:' you_have_been_invited_to_account_name_product_name_please_sign_up_using_the_link_below_: 'U bent uitgenodigd voor %{account_name} %{product_name}. Meld u aan via de onderstaande link:'
@ -7109,8 +7084,6 @@ nl: &nl
leave: Verlaten leave: Verlaten
impersonated_as: Ingelogd als impersonated_as: Ingelogd als
ask_ai: AI vragen ask_ai: AI vragen
ai_assistant: AI-assistent
discord_community: Discord-community
integrations: Integraties integrations: Integraties
teams: Teams teams: Teams
tenants: Tenants tenants: Tenants

@ -8,10 +8,11 @@ RSpec.describe 'SSO Settings' do
sign_in(user) sign_in(user)
end end
it 'shows SSO settings page' do it 'shows the Google SSO configuration form' do
visit settings_sso_index_path visit settings_sso_index_path
expect(page).to have_content('SSO') expect(page).to have_content('Google SSO')
expect(page).to have_content('SAML_CONFIGS') expect(page).to have_content('Client ID')
expect(page).to have_content('Client Secret')
end end
end end

Loading…
Cancel
Save