From 2c81987dc9f7a344b9b97d60543ff67c4c850059 Mon Sep 17 00:00:00 2001 From: Siegfried Ehret <49895321+siegfried-ehret-sonarsource@users.noreply.github.com> Date: Thu, 2 May 2019 08:46:39 +0200 Subject: [PATCH] SONARCLOUD-517 Hide organization binding link for non admin users * SONARCLOUD-517 Hide organization binding link for non admin users * SONARCLOUD-517 Update tests --- .../OrganizationNavigationHeader.tsx | 13 ++-- .../OrganizationNavigationHeader-test.tsx | 32 ++++++++++ ...OrganizationNavigationHeader-test.tsx.snap | 64 ++++++++++++++++--- 3 files changed, 95 insertions(+), 14 deletions(-) diff --git a/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigationHeader.tsx b/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigationHeader.tsx index 28b8d1cb6d9..9de2144b635 100644 --- a/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigationHeader.tsx +++ b/server/sonar-web/src/main/js/apps/organizations/navigation/OrganizationNavigationHeader.tsx @@ -45,6 +45,7 @@ export default function OrganizationNavigationHeader({ organizations }: Props) { const other = organizations.filter(o => o.key !== organization.key); + const isAdmin = organization.actions && organization.actions.admin; let almKey; let tooltipContent; @@ -66,10 +67,14 @@ export default function OrganizationNavigationHeader({ tooltipContent = ( <>

{translateWithParameters('organization.not_bound_to_x', translate(almKey))}

-
- - {translate('organization.go_to_settings_to_bind')} - + {isAdmin && ( + <> +
+ + {translate('organization.go_to_settings_to_bind')} + + + )} ); tooltipIconSrc = `${getBaseUrl()}/images/sonarcloud/${almKey}-unbound.svg`; diff --git a/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/OrganizationNavigationHeader-test.tsx b/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/OrganizationNavigationHeader-test.tsx index abd265629e3..ab3816953c8 100644 --- a/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/OrganizationNavigationHeader-test.tsx +++ b/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/OrganizationNavigationHeader-test.tsx @@ -42,6 +42,38 @@ it('renders for external user w/o alm integration', () => { ).toMatchSnapshot(); }); +it('renders with the organization tooltip for an admin user of an organization', () => { + expect( + shallowRender({ + currentUser: mockLoggedInUser({ + externalProvider: 'github' + }), + organization: { + actions: { admin: true }, + key: 'org1', + name: 'org1', + projectVisibility: 'public' + } + }).find('Tooltip') + ).toMatchSnapshot(); +}); + +it('renders without the organization tooltip for a non-admin user of an organization', () => { + expect( + shallowRender({ + currentUser: mockLoggedInUser({ + externalProvider: 'github' + }), + organization: { + actions: { admin: false }, + key: 'org1', + name: 'org1', + projectVisibility: 'public' + } + }).find('Tooltip') + ).toMatchSnapshot(); +}); + it('renders dropdown', () => { const organizations: T.Organization[] = [ { actions: { admin: true }, key: 'org1', name: 'org1', projectVisibility: 'public' }, diff --git a/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/__snapshots__/OrganizationNavigationHeader-test.tsx.snap b/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/__snapshots__/OrganizationNavigationHeader-test.tsx.snap index c580daad4e2..828f54920e8 100644 --- a/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/__snapshots__/OrganizationNavigationHeader-test.tsx.snap +++ b/server/sonar-web/src/main/js/apps/organizations/navigation/__tests__/__snapshots__/OrganizationNavigationHeader-test.tsx.snap @@ -92,16 +92,6 @@ exports[`renders for external user w/o alm integration 1`] = `

organization.not_bound_to_x.github

-
- - organization.go_to_settings_to_bind - } > @@ -169,3 +159,57 @@ exports[`renders with alm integration 1`] = ` `; + +exports[`renders with the organization tooltip for an admin user of an organization 1`] = ` + +

+ organization.not_bound_to_x.github +

+ +
+ + organization.go_to_settings_to_bind + +
+ + } +> + github +
+`; + +exports[`renders without the organization tooltip for a non-admin user of an organization 1`] = ` + +

+ organization.not_bound_to_x.github +

+ + } +> + github +
+`; -- 2.39.5