From 92dcef9f26719602800bbc875ec274b24613bdb8 Mon Sep 17 00:00:00 2001 From: Tim Roes Date: Wed, 18 Aug 2021 17:04:58 +0200 Subject: [PATCH] Hide "Manage Searches" if insufficient permissions (#109099) --- .../open_search_panel.test.tsx.snap | 3 +- .../top_nav/open_search_panel.test.tsx | 26 +++++++++-- .../components/top_nav/open_search_panel.tsx | 45 +++++++++++-------- 3 files changed, 51 insertions(+), 23 deletions(-) diff --git a/src/plugins/discover/public/application/apps/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap b/src/plugins/discover/public/application/apps/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap index 2c2674b158bfc1..6043a5d3825984 100644 --- a/src/plugins/discover/public/application/apps/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap +++ b/src/plugins/discover/public/application/apps/main/components/top_nav/__snapshots__/open_search_panel.test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`render 1`] = ` +exports[`OpenSearchPanel render 1`] = ` { return { getServices: () => ({ core: { uiSettings: {}, savedObjects: {} }, addBasePath: (path: string) => path, + capabilities: mockCapabilities(), }), }; }); import { OpenSearchPanel } from './open_search_panel'; -test('render', () => { - const component = shallow(); - expect(component).toMatchSnapshot(); +describe('OpenSearchPanel', () => { + test('render', () => { + const component = shallow(); + expect(component).toMatchSnapshot(); + }); + + test('should not render manage searches button without permissions', () => { + mockCapabilities.mockReturnValue({ + savedObjectsManagement: { + edit: false, + delete: false, + }, + }); + const component = shallow(); + expect(component.find('[data-test-subj="manageSearches"]').exists()).toBe(false); + }); }); diff --git a/src/plugins/discover/public/application/apps/main/components/top_nav/open_search_panel.tsx b/src/plugins/discover/public/application/apps/main/components/top_nav/open_search_panel.tsx index e63f010a8dffc1..31026a1e0ab594 100644 --- a/src/plugins/discover/public/application/apps/main/components/top_nav/open_search_panel.tsx +++ b/src/plugins/discover/public/application/apps/main/components/top_nav/open_search_panel.tsx @@ -34,8 +34,12 @@ export function OpenSearchPanel(props: OpenSearchPanelProps) { const { core: { uiSettings, savedObjects }, addBasePath, + capabilities, } = getServices(); + const hasSavedObjectPermission = + capabilities.savedObjectsManagement?.edit || capabilities.savedObjectsManagement?.delete; + return ( @@ -73,25 +77,28 @@ export function OpenSearchPanel(props: OpenSearchPanelProps) { savedObjects={savedObjects} /> - - - - {/* eslint-disable-next-line @elastic/eui/href-or-on-click */} - - - - - - + {hasSavedObjectPermission && ( + + + + {/* eslint-disable-next-line @elastic/eui/href-or-on-click */} + + + + + + + )} ); }