From 3d5f38304c0162274ffda49985dc2ef0a3d3b5b7 Mon Sep 17 00:00:00 2001 From: Wabo Date: Tue, 2 Jun 2026 21:37:22 -0400 Subject: [PATCH] Fix remaining merge damage: restore Google SSO form, remove trusted signature row, GitHub stars, Discord/AI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- REBRANDING.md | 61 ++++++++++++++++ .../devise/sessions/_omniauthable.html.erb | 12 +++ .../_default_signature_row.html.erb | 19 ----- app/views/esign_settings/show.html.erb | 3 - app/views/shared/_github.html.erb | 6 -- app/views/shared/_navbar.html.erb | 6 -- app/views/shared/_settings_nav.html.erb | 12 --- app/views/sso_settings/_placeholder.html.erb | 11 --- app/views/sso_settings/index.html.erb | 73 ++++++++++++++++++- config/locales/i18n.yml | 27 ------- spec/system/sso_settings_spec.rb | 7 +- 11 files changed, 148 insertions(+), 89 deletions(-) delete mode 100644 app/views/esign_settings/_default_signature_row.html.erb delete mode 100644 app/views/shared/_github.html.erb delete mode 100644 app/views/sso_settings/_placeholder.html.erb diff --git a/REBRANDING.md b/REBRANDING.md index 81afe145..037d0bb8 100644 --- a/REBRANDING.md +++ b/REBRANDING.md @@ -112,3 +112,64 @@ bin/sync-upstream ### 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. + +## 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 diff --git a/app/views/devise/sessions/_omniauthable.html.erb b/app/views/devise/sessions/_omniauthable.html.erb index e69de29b..b5fb0245 100644 --- a/app/views/devise/sessions/_omniauthable.html.erb +++ b/app/views/devise/sessions/_omniauthable.html.erb @@ -0,0 +1,12 @@ +<% if Wabosign.google_sso_enabled? %> +
<%= t('or') %>
+
+ <%= 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 %> + + <%= t('sign_in_with_google') %> + <% end %> +
+<% end %> diff --git a/app/views/esign_settings/_default_signature_row.html.erb b/app/views/esign_settings/_default_signature_row.html.erb deleted file mode 100644 index accd3e4a..00000000 --- a/app/views/esign_settings/_default_signature_row.html.erb +++ /dev/null @@ -1,19 +0,0 @@ - - - <%= svg_icon('discount_check_filled', class: 'w-6 h-6 text-green-500') %> - - <%= t('wabosign_trusted_signature') %> -
- <%= svg_icon('circle_question', class: 'w-4 h-4 stroke-1') %> -
-
- - - - <%= 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 %> - - - - diff --git a/app/views/esign_settings/show.html.erb b/app/views/esign_settings/show.html.erb index 74bd96c8..77e27386 100644 --- a/app/views/esign_settings/show.html.erb +++ b/app/views/esign_settings/show.html.erb @@ -99,9 +99,6 @@ <% end %> - <% unless Wabosign.multitenant? %> - <%= render 'default_signature_row' %> - <% end %> diff --git a/app/views/shared/_github.html.erb b/app/views/shared/_github.html.erb deleted file mode 100644 index cb1ca982..00000000 --- a/app/views/shared/_github.html.erb +++ /dev/null @@ -1,6 +0,0 @@ - - - <%= svg_icon('start', class: 'h-3 w-3') %> - 17k - - diff --git a/app/views/shared/_navbar.html.erb b/app/views/shared/_navbar.html.erb index fee6cacf..7a9888d0 100644 --- a/app/views/shared/_navbar.html.erb +++ b/app/views/shared/_navbar.html.erb @@ -4,9 +4,6 @@ <%= render 'shared/title' %> - <% if signed_in? %>
@@ -14,9 +11,6 @@ <%= t('sign_up') %> - <% else %>
<%= render 'shared/navbar_buttons' %> diff --git a/app/views/shared/_settings_nav.html.erb b/app/views/shared/_settings_nav.html.erb index 0414e095..d68b56b7 100644 --- a/app/views/shared/_settings_nav.html.erb +++ b/app/views/shared/_settings_nav.html.erb @@ -102,18 +102,6 @@ <%= svg_icon('brand_github', class: 'w-8 h-8') %>
- - <%= capture do %> - - <% end %>
<%= Wabosign::SUPPORT_EMAIL %> diff --git a/app/views/sso_settings/_placeholder.html.erb b/app/views/sso_settings/_placeholder.html.erb deleted file mode 100644 index 1f8f35de..00000000 --- a/app/views/sso_settings/_placeholder.html.erb +++ /dev/null @@ -1,11 +0,0 @@ -
- <%= svg_icon('info_circle', class: 'w-6 h-6') %> -
-

- <%= t('single_sign_on_with_saml_2_0') %> -

-

- Configure SAML SSO via the SAML_CONFIGS environment variable or through the encrypted config. -

-
-
diff --git a/app/views/sso_settings/index.html.erb b/app/views/sso_settings/index.html.erb index a0ebddba..83f70bfb 100644 --- a/app/views/sso_settings/index.html.erb +++ b/app/views/sso_settings/index.html.erb @@ -1,8 +1,77 @@
<%= render 'shared/settings_nav' %>
-

SAML SSO

- <%= render 'placeholder' %> +

Google SSO

+ + <% creds = Wabosign.google_sso_credentials %> + <% value = @encrypted_config.value || {} %> + + <% if creds[:source] == :env %> +
+ <%= svg_icon('info_circle', class: 'w-6 h-6') %> +
+

Google SSO is configured via environment variables

+

+ GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET 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. +

+
+
+ <% elsif creds[:source] == :db %> +
+ <%= svg_icon('discount_check_filled', class: 'w-6 h-6') %> +
+

Google SSO is enabled

+

+ <% if creds[:allowed_domains].any? %> + Allowed Workspace domain<%= 's' if creds[:allowed_domains].size > 1 %>: <%= creds[:allowed_domains].join(', ') %>. + <% else %> + Warning: no domain allowlist is set. Any Google account can sign in. + <% end %> +

+
+
+ <% else %> +
+ <% 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| %> +
+ +
+
+ <%= 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' %> +
+
+ <%= 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? %> + Leave blank to keep the saved secret. + <% end %> +
+
+ <%= 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' %> + Comma-separated. Only Google accounts whose Workspace hd claim matches one of these domains can sign in. Leave blank to allow any Google account (not recommended). +
+ <% end %> +
+ <%= f.button button_title(title: t('save'), disabled_with: t('saving')), class: 'base-button' %> +
+ <% end %>
diff --git a/config/locales/i18n.yml b/config/locales/i18n.yml index bcc99a63..c1860560 100644 --- a/config/locales/i18n.yml +++ b/config/locales/i18n.yml @@ -80,7 +80,6 @@ en: &en accessiable_by: Accessible by team_access: Team access document_download_filename_format: Document download filename format - wabosign_trusted_signature: WaboSign Trusted Signature hello_name: Hi %{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:' @@ -88,7 +87,6 @@ en: &en sent_using_product_name_free_document_signing_html: 'Sent using %{product_name} free document signing.' sent_with_docuseal_pro_html: 'Sent with WaboSign Pro' show_send_with_docuseal_pro_attribution_in_emails_html: Show "Sent with WaboSign Pro" 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_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:" @@ -386,8 +384,6 @@ en: &en leave: Leave impersonated_as: Impersonated as ask_ai: Ask AI - ai_assistant: AI Assistant - discord_community: Discord Community integrations: Integrations teams: Teams tenants: Tenants @@ -1136,7 +1132,6 @@ es: &es awaiting_completion_by_the_other_party: "Esperando la finalización por la otra parte" enforce_recipients_order: 'Hacer cumplir el orden de los destinatarios' first_party: 'Primera Parte' - wabosign_trusted_signature: Firma de confianza WaboSign hello_name: Hola %{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:' @@ -1144,7 +1139,6 @@ es: &es sent_using_product_name_free_document_signing_html: 'Enviado usando la firma de documentos gratuita de %{product_name}.' sent_with_docuseal_pro_html: 'Enviado con WaboSign Pro' show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar el mensaje "Enviado con WaboSign Pro" 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 thanks: Gracias 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 impersonated_as: Accediendo como ask_ai: Preguntar a la IA - ai_assistant: Asistente IA - discord_community: Comunidad en Discord integrations: Integraciones teams: Equipos tenants: Inquilinos @@ -2189,7 +2181,6 @@ it: &it awaiting_completion_by_the_other_party: "In attesa di completamento da parte dell'altra parte" enforce_recipients_order: "Applicare l'ordine dei destinatari" first_party: 'Prima parte' - wabosign_trusted_signature: "Firma Fiduciaria WaboSign" hello_name: Ciao %{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:' @@ -2197,7 +2188,6 @@ it: &it sent_using_product_name_free_document_signing_html: 'Inviato utilizzando la firma di documenti gratuita di %{product_name}.' sent_with_docuseal_pro_html: 'Inviato con WaboSign Pro' show_send_with_docuseal_pro_attribution_in_emails_html: Mostra la dicitura "Inviato con WaboSign Pro" 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 thanks: Grazie 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 impersonated_as: Impersonato come ask_ai: "Chiedi all'IA" - ai_assistant: Assistente IA - discord_community: Comunità Discord integrations: Integrazioni teams: Squadre tenants: Tenant @@ -3242,7 +3230,6 @@ fr: &fr awaiting_completion_by_the_other_party: En attente de finalisation par l’autre partie enforce_recipients_order: Imposer l’ordre des destinataires first_party: Première partie - wabosign_trusted_signature: Signature de confiance WaboSign hello_name: Bonjour %{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 :' @@ -3250,7 +3237,6 @@ fr: &fr sent_using_product_name_free_document_signing_html: Envoyé avec %{product_name} signature de documents gratuite. sent_with_docuseal_pro_html: Envoyé avec WaboSign Pro show_send_with_docuseal_pro_attribution_in_emails_html: Afficher l’attribution "Envoyé avec WaboSign Pro" dans les 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: 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 thanks: Merci 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 impersonated_as: Connecté en tant que ask_ai: Demander à l’IA - ai_assistant: Assistant IA - discord_community: Communauté Discord integrations: Intégrations teams: Équipes tenants: Locataires @@ -4292,7 +4276,6 @@ pt: &pt awaiting_completion_by_the_other_party: "Aguardando a conclusão pela outra parte" enforce_recipients_order: 'Forçar a ordem dos destinatários' first_party: 'Primeira Parte' - wabosign_trusted_signature: Assinatura Confiável WaboSign hello_name: Olá %{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:' @@ -4300,7 +4283,6 @@ pt: &pt sent_using_product_name_free_document_signing_html: 'Enviado usando a assinatura gratuita de documentos de %{product_name}.' sent_with_docuseal_pro_html: 'Enviado com WaboSign Pro' show_send_with_docuseal_pro_attribution_in_emails_html: Mostrar "Enviado com WaboSign Pro" 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á thanks: Obrigado 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 impersonated_as: Acessando como ask_ai: Perguntar para a IA - ai_assistant: Assistente de IA - discord_community: Comunidade Discord integrations: Integrações teams: Equipes tenants: Locatários @@ -5345,7 +5325,6 @@ de: &de accessiable_by: Zugänglich für team_access: Teamzugang document_download_filename_format: Format des Dateinamens beim Herunterladen von Dokumenten - wabosign_trusted_signature: WaboSign-Vertrauenssignatur hello_name: Hallo %{name} 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:' @@ -5353,7 +5332,6 @@ de: &de sent_using_product_name_free_document_signing_html: 'Gesendet mit der kostenlosen Dokumentensignierung von %{product_name}.' sent_with_docuseal_pro_html: Gesendet mit WaboSign Pro show_send_with_docuseal_pro_attribution_in_emails_html: '"Gesendet mit WaboSign Pro" 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_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:' @@ -5651,8 +5629,6 @@ de: &de leave: Verlassen impersonated_as: Eingeloggt als ask_ai: KI fragen - ai_assistant: KI-Assistent - discord_community: Discord-Community integrations: Integrationen teams: Teams tenants: Mandanten @@ -6802,7 +6778,6 @@ nl: &nl accessiable_by: Toegankelijk voor team_access: Teamtoegang document_download_filename_format: Bestandsnaamformaat voor documentdownload - wabosign_trusted_signature: WaboSign Vertrouwde handtekening hello_name: Hallo %{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:' @@ -7109,8 +7084,6 @@ nl: &nl leave: Verlaten impersonated_as: Ingelogd als ask_ai: AI vragen - ai_assistant: AI-assistent - discord_community: Discord-community integrations: Integraties teams: Teams tenants: Tenants diff --git a/spec/system/sso_settings_spec.rb b/spec/system/sso_settings_spec.rb index a5b2dd16..70ee74dc 100644 --- a/spec/system/sso_settings_spec.rb +++ b/spec/system/sso_settings_spec.rb @@ -8,10 +8,11 @@ RSpec.describe 'SSO Settings' do sign_in(user) end - it 'shows SSO settings page' do + it 'shows the Google SSO configuration form' do visit settings_sso_index_path - expect(page).to have_content('SSO') - expect(page).to have_content('SAML_CONFIGS') + expect(page).to have_content('Google SSO') + expect(page).to have_content('Client ID') + expect(page).to have_content('Client Secret') end end