Update "Skip confirmation of placeholder users" text

What does this MR do and why?

We want to inform users (admin, group owners) during the process of assigning placeholder contributions to real users that the email confirmation bypass is turned on.

There are two scenarios under which the 'skip user confirmation' feature is turned on

  • Admin can enable this feature for self-managed instances. See implementation #523259 (closed)
  • Group owners can enable this feature only for Premium & Ultimate instances on Gitlab.com and it will only apply to enterprise users in the group. See ongoing &17871

When the setting is turned on in an instance, we'll alert the user that it has been enabled in the following ways

  • The banner at the top of the placeholders table
  • A confirm modal when they attempt to re-assign a placeholder user
  • The modal that opens when a user attempts to upload a CSV for the reassignment process.

There are two distinct feature flags for the admin bypass and the group owner bypass. See "How to set up" instructions for more

  • group_owner_placeholder_confirmation_bypass
  • importer_user_mapping_allow_bypass_of_confirmation

References

Related to #534331 (closed)

Related to #544934 (closed)

Screenshots or screen recordings

Neither enabled - Banner above table (Current state) Admin enabled - Banner above table Group owner enabled
Screenshot 2025-06-20 at 1.42.19 PM.png Before-bannerOntop.png Screenshot 2025-06-20 at 1.47.50 PM.png
Neither enabled - After clicking Reassign Admin enabled - After clicking Reassign Group owner enabled - After clicking Reassign
No warning in current state Before-clickedReassign.png Screenshot 2025-06-20 at 1.48.48 PM.png
Neither enabled - CSV warning (Current state) Admin enabled - CSV warning Group owner enabled - CSV warning
Screenshot 2025-06-20 at 1.44.55 PM.png Before-confirmModal.png Screenshot 2025-06-20 at 1.48.18 PM.png

How to set up and validate locally

A. You'll need to migrate a group using direct transfer in order to generate placeholder users. Full directions below and here

  1. Make sure bulk import is enabled in the instance. Via rails console run Gitlab::CurrentSettings.update!(bulk_import_enabled: true)

  2. The user contribution mapping feature flags are enabled on production, but just in case they are

    Feature.enable(:importer_user_mapping)
    Feature.enable(:bulk_import_importer_user_mapping)
  3. Log into your instance and choose a top-level group to import into.

  4. You'll need a personal access token. create a PAT with api scope and copy the PAT.

  5. Go to Groups > New Group > Import Group and use the PAT

  6. Choose another group to import into your chosen top-level group and start the import. Wait for import to finish

  7. Go to the target group that you just imported the project into and go to the group members page. You should see a placeholders tab. The url would be /groups/<TOP-LEVEL-GROUP-NAME>/-/group_members?tab=placeholders&subtab=awaiting

B. Enable admin bypass

  1. In rails console, turn on the FF

    Feature.enable(:importer_user_mapping_allow_bypass_of_confirmation)
  2. Go to Admin area > Settings > General. Expand the Import and export settings section and enable Skip confirmation when reassigning placeholder users.

  3. Go back to the placeholders tab for your group.

  4. Verify the changed banner above the table. Click the Reassign with CSV file button and view the modal that opens. Attempt to Reassign a user in the table and click 'Reassign'. View the modal with text that mentions the admin bypass. Click cancel (Do not continue with the reassignment)

  5. Go back to the Import and export admin settings and disable the skip confirmation settings

C. Enable group owner bypass

This setting is only available under the conditions: 1) must be a premium or ultimate account, 2) must be the SaaS, 3) must be a top-level group,

  1. Make sure your dev instance is on the Ultimate tier by activating the license. See https://docs.gitlab.com/administration/license_file/

  2. In rails console enable the future flag

    Feature.enable(:group_owner_placeholder_confirmation_bypass)
  3. You must restart gdk with GITLAB_SIMULATE_SAAS=1 gdk restart

  4. Visit the settings page for the top-level group from part B. Eg. /groups/<GROUPNAME>/-/edit

  5. Scroll down to the Permissions and group features section. You should see the checkbox under Placeholder user confirmation

  6. Click the checkbox and save.

  7. Return to your top-level group's members page as in part A and B and the placeholders tab

  8. Verify the changed banner above the Placeholders table. Click the Reassign with CSV file button and view the modal that opens. Attempt to Reassign a user in the table and click 'Reassign'. View the modal with text that mentions the admin bypass. Click cancel (Do not continue with the reassignment)

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 Oiza Baiye

Merge request reports

Loading