Skip to content

Control Center left nav hidden for admins due to endpoint mismatch #1009

Closed

Description

@Bionic711

Issue

The Control Center left navigation section can be hidden for signed-in admins even when the ControlCenterAdmin and ControlCenterDashboardReader app-role settings are disabled.

In the full sidebar template, the on-page Control Center section is guarded by request.endpoint == 'control_center', but the route is registered under the frontend_control_center blueprint and is linked elsewhere as frontend_control_center.control_center.

Steps to Reproduce

  1. Sign in as a user with the Admin role.
  2. Ensure Admin Settings has Require ControlCenterAdmin App Role disabled.
  3. Ensure Admin Settings has Allow ControlCenterDashboardReader App Role disabled.
  4. Use left-nav layout and open /admin/control-center.

Expected Behavior

Regular admins should see the Control Center left-nav section and management tab links when ControlCenterAdmin enforcement is disabled.

Actual Behavior

The Control Center page can load for the admin, but the Control Center section in the left nav does not render because the endpoint comparison does not match the blueprint-qualified endpoint name.

Impact

Admins lose the left-nav navigation affordance for Control Center tabs even though route-level access permits regular Admin users in this configuration.

Notes

Investigation points:

  • application/single_app/templates/_sidebar_nav.html: checks request.endpoint == 'control_center'.
  • application/single_app/app.py: registers the frontend Control Center route with blueprint name frontend_control_center.
  • Existing links use url_for('frontend_control_center.control_center').
  • functions_authentication.control_center_required('dashboard') and route_frontend_control_center.control_center both treat regular Admin as full access when require_member_of_control_center_admin is disabled.
  • Related follow-up: consider normalizing the two Control Center app-role setting values to booleans when loading settings, since existing stored non-boolean values could make Jinja conditions behave differently from the admin UI state.

Activity

  1. self-assigned this
    on Jul 8, 2026
  2. Bionic711 commented on Jul 8, 2026

    @Bionic711
    CollaboratorAuthor

    Implemented the Control Center left-nav fix for this issue.

    Summary:

    • Updated the full sidebar Control Center section to match the blueprint-qualified endpoint frontend_control_center.control_center.
    • Preserved the regular Admin fallback when ControlCenterAdmin enforcement is disabled.
    • Bumped app version to 0.250.052.
    • Added regression coverage in functional_tests/test_control_center_left_nav_endpoint.py.
    • Added fix documentation in docs/explanation/fixes/CONTROL_CENTER_LEFT_NAV_ENDPOINT_FIX.md.
    • Added release notes under v0.250.052 with this issue as the reference.

    Validation:

    • c:/Repos/simplechatmsft/.venv/Scripts/python.exe functional_tests/test_control_center_left_nav_endpoint.py passed: 3/3 checks.
    • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check passed with no output.

    Note:

  3. paullizer commented on Aug 19, 2026

    @paullizer
    Collaborator

    Shipped in v0.250.052 via #1011.

    Release note entries:

    • v0.250.052: Control Center Left Nav Endpoint Fix

    Full notes: https://microsoft.github.io/simplechat/explanation/release_notes/

    Closing as completed. This issue stayed open after the fix merged because pull requests target Development while the repository default branch is main, so GitHub never applied the Fixes # keyword automatically.

  4. moved this from Pending Evaluation to Released in Simple Chat Roadmapon Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions