[SLO] hide service details link for read only users (#170731)

Fixes https://github.com/elastic/kibana/issues/170610
This commit is contained in:
Panagiota Mitsopoulou 2023-11-29 10:46:09 +01:00 committed by GitHub
parent 4d8db5b309
commit 2914d25a29
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View file

@ -33,13 +33,14 @@ export interface Props {
export function HeaderControl({ isLoading, slo }: Props) {
const {
application: { navigateToUrl },
application: { navigateToUrl, capabilities },
http: { basePath },
share: {
url: { locators },
},
triggersActionsUi: { getAddRuleFlyout: AddRuleFlyout },
} = useKibana().services;
const hasApmReadCapabilities = capabilities.apm.show;
const { hasWriteCapabilities } = useCapabilities();
const [isPopoverOpen, setIsPopoverOpen] = useState(false);
@ -202,6 +203,7 @@ export function HeaderControl({ isLoading, slo }: Props) {
<EuiContextMenuItem
key="exploreInApm"
icon="bullseye"
disabled={!hasApmReadCapabilities}
onClick={handleNavigateToApm}
data-test-subj="sloDetailsHeaderControlPopoverExploreInApm"
>

View file

@ -7,6 +7,7 @@
import React from 'react';
import { fireEvent, screen, waitFor } from '@testing-library/react';
import type { Capabilities } from '@kbn/core/public';
import { useKibana } from '../../utils/kibana_react';
import { useParams, useLocation } from 'react-router-dom';
@ -60,6 +61,9 @@ const mockNavigate = jest.fn();
const mockLocator = jest.fn();
const mockClone = jest.fn();
const mockDelete = jest.fn();
const mockCapabilities = {
apm: { show: true },
} as unknown as Capabilities;
const mockKibana = () => {
useKibanaMock.mockReturnValue({
@ -68,7 +72,7 @@ const mockKibana = () => {
lens: {
EmbeddableComponent: () => <div data-test-subj="errorRateChart">mocked component</div>,
},
application: { navigateToUrl: mockNavigate },
application: { navigateToUrl: mockNavigate, capabilities: mockCapabilities },
charts: chartPluginMock.createStartContract(),
http: {
basePath: {