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:
- Free flow: !237935 (merged) (wires
free_registration_unification) - Trial flow: !237932 (merged) (wires
trial_unification)
Architecture
- New mixin
Onboarding::IdentityVerificationPanelDefaultsprovides the defaultsubscription/pipelineimage + "Ship software faster" heading. TrialRegistration,InviteRegistration,SubscriptionRegistration, andSubscriptionSmRegistrationextendthe mixin.FreeRegistrationdefines its own overrides returningsubscription/collab+ "Collaborate and accelerate in one place".EE::Onboarding::StatusPresenterdelegates two new methods (identity_verification_panel_image/_heading) to the resolved registration type.registrations_identity_verification/{show,success}.html.hamlnow populate theregistration_marketing_panel_*content_forslots 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 —SubscriptionSmRegistrationinherits the mixin default which matches the previous hardcoded value).success.html.haml→ changes fromsubscription/collab+ "Collaborate and accelerate in one place" (hardcoded) tosubscription/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
- Trial epic: gitlab-org&21601
- Free epic: gitlab-org&21602
- Free follow-up: !237935 (merged)
- Trial follow-up: !237932 (merged)
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.
-
Ensure
subscription_sm_unificationis enabled and theonboardingSaaS feature is on:# rails console Feature.enable(:subscription_sm_unification) -
Sign out (or use a fresh browser profile so you're starting unauthenticated).
-
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 -
Complete the registration form and proceed to email verification (use
http://gdk.test:3000/rails/letter_opener/to grab the verification code). -
After successful verification, on the
/users/sign_up/successful_verificationinterstitial, verify the right panel shows:- Image: the pipeline illustration (
subscription/pipeline.png—app/assets/images/subscription/pipeline.png) - Heading: "Ship software faster"
Previously (master) this would have shown the collab illustration + "Collaborate and accelerate in one place".
- Image: the pipeline illustration (
-
(Sanity check, no change expected) Repeat with
subscription_sm_unificationdisabled (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. -
(Sanity check, no change expected) Run any free / invite / non-unified subscription sign-up. The right panel does not render (their
unification_enabled?returnsfalse), 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.