Skip to content

Commit

Permalink
[SECURITY_SOLUTION][Administration] Task/remove policy tab (#73352)
Browse files Browse the repository at this point in the history
  • Loading branch information
parkiino committed Jul 29, 2020
1 parent 774d359 commit f1c0893
Show file tree
Hide file tree
Showing 15 changed files with 68 additions and 179 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,57 +77,6 @@ const PolicyEmptyState = React.memo<{
/>
</EuiText>
<EuiSpacer size="m" />
<EuiFlexGroup alignItems="center" style={{ maxWidth: '90%' }}>
<EuiFlexItem>
<EuiFlexGroup>
<EuiFlexItem grow={false} style={{ marginRight: '10px' }}>
<EuiIcon type="grid" />
</EuiFlexItem>
<EuiFlexItem grow={false} style={{ marginLeft: '0' }}>
<EuiText>
<h4>
<FormattedMessage
id="xpack.securitySolution.endpoint.policyList.onboardingHostTitle"
defaultMessage="Hosts"
/>
</h4>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer size="s" />
<EuiText size="xs" color="subdued">
<FormattedMessage
id="xpack.securitySolution.endpoint.policyList.onboardingHostInfo"
defaultMessage="Hosts running Elastic Endpoint Security"
/>
</EuiText>
</EuiFlexItem>
<EuiFlexItem>
<EuiFlexGroup>
<EuiFlexItem grow={false} style={{ marginRight: '10px' }}>
<EuiIcon type="controlsHorizontal" />
</EuiFlexItem>
<EuiFlexItem grow={false} style={{ marginLeft: '0' }}>
<EuiText>
<h4>
<FormattedMessage
id="xpack.securitySolution.endpoint.policyList.onboardingPolicyTitle"
defaultMessage="Policies"
/>
</h4>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer size="s" />
<EuiText size="xs" color="subdued">
<FormattedMessage
id="xpack.securitySolution.endpoint.policyList.onboardingPolicyInfo"
defaultMessage="View and configure protections"
/>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer size="m" />
<EuiText size="s" color="subdued">
<FormattedMessage
id="xpack.securitySolution.endpoint.policyList.onboardingSectionThree"
Expand Down Expand Up @@ -178,14 +127,14 @@ const HostsEmptyState = React.memo<{
() => [
{
title: i18n.translate('xpack.securitySolution.endpoint.hostList.stepOneTitle', {
defaultMessage: 'Select the policy you want to use to protect your hosts',
defaultMessage: 'Select the integration you want to use',
}),
children: (
<>
<EuiText color="subdued" size="m" grow={false}>
<FormattedMessage
id="xpack.securitySolution.endpoint.hostList.stepOne"
defaultMessage="Existing policies are listed below. This can be changed later."
defaultMessage="Select from existing integrations. This can be changed later."
/>
</EuiText>
<EuiSpacer size="xxl" />
Expand All @@ -203,15 +152,15 @@ const HostsEmptyState = React.memo<{
<EuiSelectableMessage>
<FormattedMessage
id="xpack.securitySolution.endpoint.hostList.loadingPolicies"
defaultMessage="Loading policy configs"
defaultMessage="Loading integrations"
/>
</EuiSelectableMessage>
) : selectionOptions.length ? (
list
) : (
<FormattedMessage
id="xpack.securitySolution.endpoint.hostList.noPolicies"
defaultMessage="There are no policies."
defaultMessage="There are no integrations."
/>
);
}}
Expand Down Expand Up @@ -263,13 +212,13 @@ const HostsEmptyState = React.memo<{
headerComponent={
<FormattedMessage
id="xpack.securitySolution.endpoint.hostList.noEndpointsPrompt"
defaultMessage="Enable Elastic Endpoint Security on your agents"
defaultMessage="Next step: Enroll an Agent with Elastic Endpoint Security"
/>
}
bodyComponent={
<FormattedMessage
id="xpack.securitySolution.endpoint.hostList.noEndpointsInstructions"
defaultMessage="You’ve created your security policy. Now you need to enable the Elastic Endpoint Security capabilities on your agents following the steps below."
defaultMessage="You’ve added the Endpoint Security integration. Now enroll your agents using the steps below."
/>
}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,11 @@
* you may not use this file except in compliance with the Elastic License.
*/

import React, { memo, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { useParams } from 'react-router-dom';
import React, { memo } from 'react';
import { PageView, PageViewProps } from '../../common/components/endpoint/page_view';
import { AdministrationSubTab } from '../types';
import { SecurityPageName } from '../../app/types';
import { useFormatUrl } from '../../common/components/link_to';
import { getHostListPath, getPoliciesPath } from '../common/routing';
import { useNavigateByRouterEventHandler } from '../../common/hooks/endpoint/use_navigate_by_router_event_handler';

export const ManagementPageView = memo<Omit<PageViewProps, 'tabs'>>((options) => {
const { formatUrl, search } = useFormatUrl(SecurityPageName.administration);
const { tabName } = useParams<{ tabName: AdministrationSubTab }>();

const goToEndpoint = useNavigateByRouterEventHandler(
getHostListPath({ name: 'hostList' }, search)
);

const goToPolicies = useNavigateByRouterEventHandler(getPoliciesPath(search));

const tabs = useMemo((): PageViewProps['tabs'] | undefined => {
if (options.viewType === 'details') {
return undefined;
}
return [
{
name: i18n.translate('xpack.securitySolution.managementTabs.hosts', {
defaultMessage: 'Hosts',
}),
id: AdministrationSubTab.hosts,
isSelected: tabName === AdministrationSubTab.hosts,
href: formatUrl(getHostListPath({ name: 'hostList' })),
onClick: goToEndpoint,
},
{
name: i18n.translate('xpack.securitySolution.managementTabs.policies', {
defaultMessage: 'Policies',
}),
id: AdministrationSubTab.policies,
isSelected: tabName === AdministrationSubTab.policies,
href: formatUrl(getPoliciesPath()),
onClick: goToPolicies,
},
];
}, [formatUrl, goToEndpoint, goToPolicies, options.viewType, tabName]);
return <PageView {...options} tabs={tabs} />;
return <PageView {...options} />;
});

ManagementPageView.displayName = 'ManagementPageView';
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ export const HostDetails = memo(({ details }: { details: HostMetadata }) => {
return [
{
title: i18n.translate('xpack.securitySolution.endpoint.host.details.policy', {
defaultMessage: 'Policy',
defaultMessage: 'Integration',
}),
description: (
<>
Expand All @@ -136,7 +136,7 @@ export const HostDetails = memo(({ details }: { details: HostMetadata }) => {
},
{
title: i18n.translate('xpack.securitySolution.endpoint.host.details.policyStatus', {
defaultMessage: 'Policy Status',
defaultMessage: 'Configuration response',
}),
description: (
<EuiHealth
Expand Down Expand Up @@ -216,7 +216,7 @@ export const HostDetails = memo(({ details }: { details: HostMetadata }) => {
<EuiIcon type="savedObjectsApp" className="linkToAppIcon" />
<FormattedMessage
id="xpack.securitySolution.endpoint.host.details.linkToIngestTitle"
defaultMessage="Reassign Policy"
defaultMessage="Reassign Configuration"
/>
<EuiIcon type="popout" className="linkToAppPopoutIcon" />
</LinkToApp>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ const PolicyResponseFlyoutPanel = memo<{
<h4>
<FormattedMessage
id="xpack.securitySolution.endpoint.host.policyResponse.title"
defaultMessage="Policy Response"
defaultMessage="Configuration Response"
/>
</h4>
</EuiText>
Expand All @@ -167,7 +167,7 @@ const PolicyResponseFlyoutPanel = memo<{
title={
<FormattedMessage
id="xpack.securitySolution.endpoint.hostDetails.noPolicyResponse"
defaultMessage="No policy response available"
defaultMessage="No configuration response available"
/>
}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ describe('when on the hosts page', () => {
const renderResult = render();
const linkToReassign = await renderResult.findByTestId('hostDetailsLinkToIngest');
expect(linkToReassign).not.toBeNull();
expect(linkToReassign.textContent).toEqual('Reassign Policy');
expect(linkToReassign.textContent).toEqual('Reassign Configuration');
expect(linkToReassign.getAttribute('href')).toEqual(
`/app/ingestManager#/fleet/agents/${agentId}/activity?openReassignFlyout=true`
);
Expand Down Expand Up @@ -492,7 +492,7 @@ describe('when on the hosts page', () => {
it('should include the sub-panel title', async () => {
expect(
(await renderResult.findByTestId('hostDetailsPolicyResponseFlyoutTitle')).textContent
).toBe('Policy Response');
).toBe('Configuration Response');
});

it('should show a configuration section for each protection', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ export const HostList = () => {
{
field: 'metadata.Endpoint.policy.applied',
name: i18n.translate('xpack.securitySolution.endpointList.policy', {
defaultMessage: 'Policy',
defaultMessage: 'Integration',
}),
truncateText: true,
// eslint-disable-next-line react/display-name
Expand All @@ -256,7 +256,7 @@ export const HostList = () => {
{
field: 'metadata.Endpoint.policy.applied',
name: i18n.translate('xpack.securitySolution.endpointList.policyStatus', {
defaultMessage: 'Policy Status',
defaultMessage: 'Configuration Status',
}),
// eslint-disable-next-line react/display-name
render: (policy: HostInfo['metadata']['Endpoint']['policy']['applied'], item: HostInfo) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,13 @@

import React, { memo } from 'react';
import { Route, Switch } from 'react-router-dom';
import { PolicyDetails, PolicyList } from './view';
import {
MANAGEMENT_ROUTING_POLICIES_PATH,
MANAGEMENT_ROUTING_POLICY_DETAILS_PATH,
} from '../../common/constants';
import { PolicyDetails } from './view';
import { MANAGEMENT_ROUTING_POLICY_DETAILS_PATH } from '../../common/constants';
import { NotFoundPage } from '../../../app/404';

export const PolicyContainer = memo(() => {
return (
<Switch>
<Route path={MANAGEMENT_ROUTING_POLICIES_PATH} exact component={PolicyList} />
<Route path={MANAGEMENT_ROUTING_POLICY_DETAILS_PATH} exact component={PolicyDetails} />
<Route path="*" component={NotFoundPage} />
</Switch>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@

import React, { memo, useMemo } from 'react';
import { FormattedMessage } from '@kbn/i18n/react';
import { EuiCallOut, EuiText, EuiTitle, EuiSpacer } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { EuiCallOut, EuiText, EuiSpacer } from '@elastic/eui';
import { LinkToApp } from '../../../../../common/components/endpoint/link_to_app';
import {
CustomConfigurePackageConfigContent,
Expand Down Expand Up @@ -50,52 +49,37 @@ export const ConfigureEndpointPackageConfig = memo<CustomConfigurePackageConfigC

return (
<>
<EuiTitle size="xs">
<h4>
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.policyConfiguration"
defaultMessage="Policy Configuration"
/>
</h4>
</EuiTitle>
<EuiSpacer size="m" />
<EuiCallOut
data-test-subj={`endpointPackageConfig_${from === 'edit' ? 'edit' : 'create'}`}
iconType="iInCircle"
title={i18n.translate(
'xpack.securitySolution.endpoint.ingestManager.policyConfiguration.calloutTitle',
{
defaultMessage: 'Manage Policy configuration in the Security app',
}
)}
>
<EuiText size="s">
<p>
{from === 'edit' ? (
<>
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.editPackageConfig.endpointConfiguration"
defaultMessage="You can make changes to the Policy Configuration in the Security app. Fleet will deploy changes to your agents whenever your Policy changes."
/>
<EuiSpacer />
<LinkToApp
data-test-subj="editLinkToPolicyDetails"
asButton={true}
appId={MANAGEMENT_APP_ID}
className="editLinkToPolicyDetails"
appPath={policyUrl}
appState={policyDetailRouteState}
>
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.editPackageConfig.configurePolicyLink"
defaultMessage="Configure Policy"
/>
</LinkToApp>
</>
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.editPackageConfig.endpointConfiguration"
defaultMessage="Click {advancedConfigOptionsLink} to edit advanced configuration options."
values={{
advancedConfigOptionsLink: (
<LinkToApp
data-test-subj="editLinkToPolicyDetails"
appId={MANAGEMENT_APP_ID}
appPath={policyUrl}
appState={policyDetailRouteState}
>
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.editPackageConfig.endpointConfigurationLink"
defaultMessage="here"
/>
</LinkToApp>
),
}}
/>
) : (
<FormattedMessage
id="xpack.securitySolution.endpoint.ingestManager.createPackageConfig.endpointConfiguration"
defaultMessage="Any agents that use this agent configuration will use a basic policy. You can make changes to this policy in the Security app, and Fleet will deploy those changes to your agents."
defaultMessage="We'll save your integration with our recommended defaults. You can change this later by editing the Endpoint Security integration within your agent configuration."
/>
)}
</p>
Expand Down
Loading

0 comments on commit f1c0893

Please sign in to comment.