Эх сурвалжийг харах

[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
Antoine Clausse 10 сар өмнө
parent
commit
584c23628c

+ 18 - 0
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)

+ 1 - 1
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

+ 1 - 1
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

+ 1 - 1
services/web/frontend/js/shared/components/navbar/admin-menu.tsx

@@ -45,7 +45,7 @@ export default function AdminMenu({
       ) : null}
       {canDisplayProjectUrlLookup ? (
         <NavDropdownLinkItem href="/admin/project">
-          Project URL lookup
+          Project URL Lookup
         </NavDropdownLinkItem>
       ) : null}
       {canDisplayAdminRedirect && adminUrl ? (