From 584c23628c1e6cdf0b325744dd5f9cbfb3e36ce7 Mon Sep 17 00:00:00 2001 From: Antoine Clausse Date: Tue, 14 Oct 2025 17:01:08 +0200 Subject: [PATCH] [web] Check `adminPrivilegeAvailable` to show "Project URL lookup" (#29020) * Check `adminPrivilegeAvailable` to show "Project URL lookup" This is the correct check as it's what used to decide if the AdminPanelRouter should be included: https://github.com/overleaf/internal/blob/ffa200d59538e683c95e34dfd3dff2dc68403c51/services/web/modules/admin-panel/index.mjs#L14-L15 * Add "it displays expected admin menu items" to e2e tests * Don't expect "Project URL lookup" in CE * Revert "Don't expect "Project URL lookup" in CE" This reverts commit 467cccbf6c0d538c386d459403c521e3f62cfee2. * Make "Project URL Lookup" capitalization consistent GitOrigin-RevId: ed5c219e9b5912a4c324cf9dce58061b58d911b0 --- server-ce/test/admin.spec.ts | 18 ++++++++++++++++++ services/web/app/views/layout-react.pug | 2 +- .../web/app/views/layout/navbar-marketing.pug | 2 +- .../js/shared/components/navbar/admin-menu.tsx | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/server-ce/test/admin.spec.ts b/server-ce/test/admin.spec.ts index b404698b51..ef4c4a84ac 100644 --- a/server-ce/test/admin.spec.ts +++ b/server-ce/test/admin.spec.ts @@ -135,6 +135,24 @@ describe('admin panel', function () { ) }) + describe('admin menu items', () => { + beforeEach(() => { + login(admin) + cy.visit('/project') + }) + + it('displays expected admin menu items', () => { + const menuitems = ['Manage Site', 'Manage Users', 'Project URL Lookup'] + menuitems.forEach(name => { + cy.findByRole('menuitem', { name: 'Admin' }).click() + cy.get('ul[role="menu"]') + .findAllByRole('menuitem') + .should('have.length', menuitems.length) + cy.get('ul[role="menu"]').findByRole('menuitem', { name }).click() + }) + }) + }) + describe('manage site', () => { beforeEach(() => { login(admin) diff --git a/services/web/app/views/layout-react.pug b/services/web/app/views/layout-react.pug index 01570c8814..d9e7a83b52 100644 --- a/services/web/app/views/layout-react.pug +++ b/services/web/app/views/layout-react.pug @@ -12,7 +12,7 @@ block append meta - const canDisplayAdminRedirect = canRedirectToAdminDomain() - const sessionUser = getSessionUser() - const staffAccess = sessionUser?.staffAccess - - const canDisplayProjectUrlLookup = hasFeature('saas') && canDisplayAdminMenu && hasAdminCapability('view-project-setting', false) + - const canDisplayProjectUrlLookup = settings.adminPrivilegeAvailable && canDisplayAdminMenu && hasAdminCapability('view-project-setting', false) - const canDisplaySplitTestMenu = hasFeature('saas') && ((canDisplayAdminMenu && hasAdminCapability('view-split-test')) || staffAccess?.splitTestMetrics || staffAccess?.splitTestManagement) - const canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu && hasAdminCapability('manage-survey', false) - const canDisplayScriptLogMenu = hasFeature('saas') && hasAdminCapability('view-script-log', false) && canDisplayAdminMenu diff --git a/services/web/app/views/layout/navbar-marketing.pug b/services/web/app/views/layout/navbar-marketing.pug index 10e8b747ae..ddd535bb47 100644 --- a/services/web/app/views/layout/navbar-marketing.pug +++ b/services/web/app/views/layout/navbar-marketing.pug @@ -30,7 +30,7 @@ nav.navbar.navbar-default.navbar-main.navbar-expand-lg( - var canDisplayAdminMenu = hasAdminAccess() - var canDisplayAdminRedirect = canRedirectToAdminDomain() - - var canDisplayProjectUrlLookup = hasFeature('saas') && canDisplayAdminMenu && hasAdminCapability('view-project-setting', false) + - var canDisplayProjectUrlLookup = settings.adminPrivilegeAvailable && canDisplayAdminMenu && hasAdminCapability('view-project-setting', false) - var canDisplaySplitTestMenu = hasFeature('saas') && ((canDisplayAdminMenu && hasAdminCapability('view-split-test')) || (getSessionUser() && getSessionUser().staffAccess && (getSessionUser().staffAccess.splitTestMetrics || getSessionUser().staffAccess.splitTestManagement))) - var canDisplaySurveyMenu = hasFeature('saas') && canDisplayAdminMenu && hasAdminCapability('manage-survey', false) - var canDisplayScriptLogMenu = hasFeature('saas') && hasAdminCapability('view-script-log', false) && canDisplayAdminMenu diff --git a/services/web/frontend/js/shared/components/navbar/admin-menu.tsx b/services/web/frontend/js/shared/components/navbar/admin-menu.tsx index 94c57e1dfc..9876e4a769 100644 --- a/services/web/frontend/js/shared/components/navbar/admin-menu.tsx +++ b/services/web/frontend/js/shared/components/navbar/admin-menu.tsx @@ -45,7 +45,7 @@ export default function AdminMenu({ ) : null} {canDisplayProjectUrlLookup ? ( - Project URL lookup + Project URL Lookup ) : null} {canDisplayAdminRedirect && adminUrl ? (