Stop pinning settings pages under the sidebar flag

What does this MR do and why?

Behind the hide_unpinned_sidebar_items feature flag, settings live in the sidebar footer disclosure, so pinning them duplicates a control that is always one click away. With the flag on, in group and project sidebars:

  • Footer disclosure: the settings dropdown has no pin controls.
  • Pinned section: settings pages a user pinned earlier no longer show in the pinned section, including the compact grouped view and Full mode.
  • Saved pins are kept: every pin change sends the full list of pin IDs to the server, so settings pins are hidden only in what the sidebar displays. They stay in pinned_nav_items through pin, unpin, and reorder, and turning the flag off brings them back.

Unchanged: the flag-off sidebar, the Organization sidebar, and the Feature catalog (which already excludes Settings). Users::PinsController still accepts any item ID, so the restriction is UI-only.

Stack (6 of 6): footer placement → disclosure labels → Admin area → organization admin → user settings → this MR.

References

Screenshots or screen recordings

Before After
CleanShot_2026-11-12_at_8.43.52_PM_2x CleanShot_2026-11-12_at_8.46.56_PM_2x

How to set up and validate locally

  1. In the Rails console, make sure the flag is off:

    Feature.disable(:hide_unpinned_sidebar_items)
  2. Visit a project and pin a settings page, for example Settings > General.

  3. Enable the flag:

    Feature.enable(:hide_unpinned_sidebar_items)
  4. Reload the project. Confirm the settings pin no longer shows in the sidebar, and the settings dropdown in the footer has no pin buttons.

  5. Unpin or reorder another pinned item.

  6. Disable the flag again and reload. Confirm the settings pin is back.

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 Austin Regnery

Merge request reports

Loading
Loading