diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx index 49e385e0fe86c0..6b860bf48e4f91 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.test.tsx @@ -191,6 +191,36 @@ describe('InvestigateInResolverAction', () => { expect(wrapper.find(addEndpointEventFilterButton).first().exists()).toEqual(true); expect(wrapper.find(addEndpointEventFilterButton).first().props().disabled).toEqual(true); }); + + test('it enables AddEndpointEventFilter when timeline id is user events page', () => { + const wrapper = mount( + , + { + wrappingComponent: TestProviders, + } + ); + + wrapper.find(actionMenuButton).simulate('click'); + expect(wrapper.find(addEndpointEventFilterButton).first().exists()).toEqual(true); + expect(wrapper.find(addEndpointEventFilterButton).first().props().disabled).toEqual(false); + }); + + test('it disables AddEndpointEventFilter when timeline id is user events page but is not from endpoint', () => { + const customProps = { + ...props, + ecsRowData: { ...ecsRowData, agent: { type: ['other'] }, event: { kind: ['event'] } }, + }; + const wrapper = mount( + , + { + wrappingComponent: TestProviders, + } + ); + + wrapper.find(actionMenuButton).simulate('click'); + expect(wrapper.find(addEndpointEventFilterButton).first().exists()).toEqual(true); + expect(wrapper.find(addEndpointEventFilterButton).first().props().disabled).toEqual(true); + }); }); describe('when users can NOT access endpoint management', () => { beforeEach(() => { @@ -212,6 +242,19 @@ describe('InvestigateInResolverAction', () => { expect(wrapper.find(addEndpointEventFilterButton).first().exists()).toEqual(true); expect(wrapper.find(addEndpointEventFilterButton).first().props().disabled).toEqual(true); }); + + test('it disables AddEndpointEventFilter when timeline id is user events page but cannot acces endpoint management', () => { + const wrapper = mount( + , + { + wrappingComponent: TestProviders, + } + ); + + wrapper.find(actionMenuButton).simulate('click'); + expect(wrapper.find(addEndpointEventFilterButton).first().exists()).toEqual(true); + expect(wrapper.find(addEndpointEventFilterButton).first().props().disabled).toEqual(true); + }); }); }); }); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx index 5d3588393202ef..a34d354311d4c5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx @@ -91,6 +91,10 @@ const AlertContextMenuComponent: React.FC ecsRowData.agent?.type?.includes('endpoint'), [ecsRowData]); const isEndpointEvent = useMemo(() => isEvent && isAgentEndpoint, [isEvent, isAgentEndpoint]); + const timelineIdAllowsAddEndpointEventFilter = useMemo( + () => timelineId === TimelineId.hostsPageEvents || timelineId === TimelineId.usersPageEvents, + [timelineId] + ); const onButtonClick = useCallback(() => { setPopover(!isPopoverOpen); @@ -177,13 +181,10 @@ const AlertContextMenuComponent: React.FC