Delegate identity verification marketing panel to registration type

What does this MR do and why?

Extract the identity-verification right-panel image and heading into a delegated abstraction on the onboarding registration types, enabling per-flow customisation without view-level branching.

This is the infrastructure / shared abstraction half of the Unified Registration: Trial and Unified Registration: Free work. The per-flow feature-flag wiring lands in the follow-up MRs:

Architecture

  • New mixin Onboarding::IdentityVerificationPanelDefaults provides the default subscription/pipeline image + "Ship software faster" heading.
  • TrialRegistration, InviteRegistration, SubscriptionRegistration, and SubscriptionSmRegistration extend the mixin.
  • FreeRegistration defines its own overrides returning subscription/collab + "Collaborate and accelerate in one place".
  • EE::Onboarding::StatusPresenter delegates two new methods (identity_verification_panel_image / _heading) to the resolved registration type.
  • registrations_identity_verification/{show,success}.html.haml now populate the registration_marketing_panel_* content_for slots from the presenter delegation instead of hardcoded values.

Visible behaviour change

For the SM subscription flow with subscription_sm_unification already enabled today:

  • show.html.haml → unchanged (subscription/pipeline + "Ship software faster" both before and after — SubscriptionSmRegistration inherits the mixin default which matches the previous hardcoded value).
  • success.html.hamlchanges from subscription/collab + "Collaborate and accelerate in one place" (hardcoded) to subscription/pipeline + "Ship software faster" (via the mixin default). This aligns the success-page illustration with the rest of the SM unified flow (the SM design uses pipeline throughout).

The free, invite, and non-unified subscription flows are unchanged because the layout dispatch (registration_layout'registration_two_panel' only when unification_enabled?) keeps the right panel from rendering, so the new delegation values are computed but never shown.

The trial flow has no visible change in this MR because TrialRegistration.unification_enabled? still returns false until !237932 (merged) wires the FF.

References

How to set up and validate locally

The only flow with a user-visible change in this MR is SM subscription with subscription_sm_unification enabled on the post-verification success screen.

  1. Ensure subscription_sm_unification is enabled and the onboarding SaaS feature is on:

    # rails console
    Feature.enable(:subscription_sm_unification)
  2. Sign out (or use a fresh browser profile so you're starting unauthenticated).

  3. Visit the SM subscription purchase URL to seed the stored user location with the SM deployment type:

    https://gdk.test:3443/-/subscriptions/new?deployment_type=self_managed&plan_id=2c92a01176f0d50a0176f3043c4d4a53
  4. Complete the registration form and proceed to email verification (use http://gdk.test:3000/rails/letter_opener/ to grab the verification code).

  5. After successful verification, on the /users/sign_up/successful_verification interstitial, verify the right panel shows:

    • Image: the pipeline illustration (subscription/pipeline.pngapp/assets/images/subscription/pipeline.png)
    • Heading: "Ship software faster"

    Previously (master) this would have shown the collab illustration + "Collaborate and accelerate in one place".

  6. (Sanity check, no change expected) Repeat with subscription_sm_unification disabled (Feature.disable(:subscription_sm_unification)). The flow falls back to the 'devise' layout and no right panel is shown — there is nothing to verify visually because the marketing panel doesn't render.

  7. (Sanity check, no change expected) Run any free / invite / non-unified subscription sign-up. The right panel does not render (their unification_enabled? returns false), so the delegation result is computed but never shown.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by David Hamp-Gonsalves

Merge request reports

Loading