Refactored directives to recommendations (still WIP)
This commit is contained in:
parent
07eb9ec32f
commit
32bc318c69
|
@ -4,7 +4,7 @@ import AuthComponent from '../AuthComponent';
|
||||||
import ReportHeader, {ReportTypes} from "../report-components/common/ReportHeader";
|
import ReportHeader, {ReportTypes} from "../report-components/common/ReportHeader";
|
||||||
import PillarsOverview from "../report-components/zerotrust/PillarOverview";
|
import PillarsOverview from "../report-components/zerotrust/PillarOverview";
|
||||||
import FindingsTable from "../report-components/zerotrust/FindingsTable";
|
import FindingsTable from "../report-components/zerotrust/FindingsTable";
|
||||||
import SinglePillarDirectivesStatus from "../report-components/zerotrust/SinglePillarDirectivesStatus";
|
import SinglePillarRecommendationsStatus from "../report-components/zerotrust/SinglePillarRecommendationsStatus";
|
||||||
import MonkeysStillAliveWarning from "../report-components/common/MonkeysStillAliveWarning";
|
import MonkeysStillAliveWarning from "../report-components/common/MonkeysStillAliveWarning";
|
||||||
import ReportLoader from "../report-components/common/ReportLoader";
|
import ReportLoader from "../report-components/common/ReportLoader";
|
||||||
import MustRunMonkeyWarning from "../report-components/common/MustRunMonkeyWarning";
|
import MustRunMonkeyWarning from "../report-components/common/MustRunMonkeyWarning";
|
||||||
|
@ -103,18 +103,18 @@ class ZeroTrustReportPageComponent extends AuthComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
generateDirectivesSection() {
|
generateDirectivesSection() {
|
||||||
return (<div id="directives-overview">
|
return (<div id="recommendations-overview">
|
||||||
<h2>Directives</h2>
|
<h2>Recommendations</h2>
|
||||||
<p>
|
<p>
|
||||||
Analyze each zero trust recommendation by pillar, and see if you've followed through with it. See test results
|
Analyze each zero trust recommendation by pillar, and see if you've followed through with it. See test results
|
||||||
to understand how the monkey tested your adherence to that recommendation.
|
to understand how the monkey tested your adherence to that recommendation.
|
||||||
</p>
|
</p>
|
||||||
{
|
{
|
||||||
Object.keys(this.state.directives).map((pillar) =>
|
Object.keys(this.state.directives).map((pillar) =>
|
||||||
<SinglePillarDirectivesStatus
|
<SinglePillarRecommendationsStatus
|
||||||
key={pillar}
|
key={pillar}
|
||||||
pillar={pillar}
|
pillar={pillar}
|
||||||
directivesStatus={this.state.directives[pillar]}
|
recommendationsStatus={this.state.directives[pillar]}
|
||||||
pillarsToStatuses={this.state.pillars.pillarsToStatuses}/>
|
pillarsToStatuses={this.state.pillars.pillarsToStatuses}/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -126,15 +126,12 @@ class ZeroTrustReportPageComponent extends AuthComponent {
|
||||||
<h2>Summary</h2>
|
<h2>Summary</h2>
|
||||||
<Grid fluid={true}>
|
<Grid fluid={true}>
|
||||||
<Row>
|
<Row>
|
||||||
<Col xs={6} sm={6} md={6} lg={6}>
|
<Col xs={12} sm={12} md={12} lg={12}>
|
||||||
<MonkeysStillAliveWarning allMonkeysAreDead={this.state.allMonkeysAreDead}/>
|
<MonkeysStillAliveWarning allMonkeysAreDead={this.state.allMonkeysAreDead}/>
|
||||||
<p>
|
<p>
|
||||||
Get a quick glance of the status for each of Zero Trust's seven pillars.
|
Get a quick glance of the status for each of Zero Trust's seven pillars.
|
||||||
</p>
|
</p>
|
||||||
</Col>
|
</Col>
|
||||||
<Col xs={6} sm={6} md={6} lg={6}>
|
|
||||||
<ZeroTrustReportLegend />
|
|
||||||
</Col>
|
|
||||||
</Row>
|
</Row>
|
||||||
<Row className="show-grid">
|
<Row className="show-grid">
|
||||||
<Col xs={8} sm={8} md={8} lg={8}>
|
<Col xs={8} sm={8} md={8} lg={8}>
|
||||||
|
@ -145,6 +142,11 @@ class ZeroTrustReportPageComponent extends AuthComponent {
|
||||||
<StatusesToPillarsSummary statusesToPillars={this.state.pillars.statusesToPillars}/>
|
<StatusesToPillarsSummary statusesToPillars={this.state.pillars.statusesToPillars}/>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Col xs={12} sm={12} md={12} lg={12}>
|
||||||
|
<ZeroTrustReportLegend />
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
</Grid>
|
</Grid>
|
||||||
</div>);
|
</div>);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ const columns = [
|
||||||
const pillarLabels = pillars.map((pillar) =>
|
const pillarLabels = pillars.map((pillar) =>
|
||||||
<PillarLabel key={pillar.name} pillar={pillar.name} status={pillar.status}/>
|
<PillarLabel key={pillar.name} pillar={pillar.name} status={pillar.status}/>
|
||||||
);
|
);
|
||||||
return <Fragment>{pillarLabels}</Fragment>;
|
return <div style={{"text-align": "center"}}>{pillarLabels}</div>;
|
||||||
},
|
},
|
||||||
maxWidth: 200,
|
maxWidth: 200,
|
||||||
style: {'whiteSpace': 'unset'}
|
style: {'whiteSpace': 'unset'}
|
||||||
|
|
|
@ -15,7 +15,7 @@ const columns = [
|
||||||
},
|
},
|
||||||
maxWidth: 80
|
maxWidth: 80
|
||||||
},
|
},
|
||||||
{ Header: 'Directive', accessor: 'directive',
|
{ Header: 'Recommendation', accessor: 'directive',
|
||||||
style: {'whiteSpace': 'unset'} // This enables word wrap
|
style: {'whiteSpace': 'unset'} // This enables word wrap
|
||||||
},
|
},
|
||||||
{ Header: 'Tests', id: 'tests',
|
{ Header: 'Tests', id: 'tests',
|
||||||
|
@ -64,12 +64,12 @@ class TestsStatus extends AuthComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class DirectivesStatusTable extends AuthComponent {
|
export class RecommendationsStatusTable extends AuthComponent {
|
||||||
render() {
|
render() {
|
||||||
return <PaginatedTable data={this.props.directivesStatus} columns={columns} pageSize={5}/>;
|
return <PaginatedTable data={this.props.directivesStatus} columns={columns} pageSize={5}/>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default DirectivesStatusTable;
|
export default RecommendationsStatusTable;
|
||||||
|
|
||||||
DirectivesStatusTable.propTypes = {directivesStatus: PropTypes.array};
|
RecommendationsStatusTable.propTypes = {directivesStatus: PropTypes.array};
|
|
@ -13,7 +13,7 @@ class ZeroTrustReportLegend extends Component {
|
||||||
<Panel>
|
<Panel>
|
||||||
<Panel.Heading>
|
<Panel.Heading>
|
||||||
<Panel.Title toggle>
|
<Panel.Title toggle>
|
||||||
<h3>🔽 Legend</h3>
|
<h3><i className="fa fa-chevron-down" /> Legend</h3>
|
||||||
</Panel.Title>
|
</Panel.Title>
|
||||||
</Panel.Heading>
|
</Panel.Heading>
|
||||||
<Panel.Collapse>
|
<Panel.Collapse>
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
import AuthComponent from "../../AuthComponent";
|
|
||||||
import PillarLabel from "./PillarLabel";
|
|
||||||
import DirectivesStatusTable from "./DirectivesStatusTable";
|
|
||||||
import React, {Fragment} from "react";
|
|
||||||
import * as PropTypes from "prop-types";
|
|
||||||
import {Panel} from "react-bootstrap";
|
|
||||||
|
|
||||||
export default class SinglePillarDirectivesStatus extends AuthComponent {
|
|
||||||
render() {
|
|
||||||
if (this.props.directivesStatus.length === 0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return (
|
|
||||||
<Panel>
|
|
||||||
<Panel.Heading>
|
|
||||||
<Panel.Title toggle>
|
|
||||||
<h3 style={{"text-align": "center"}}>
|
|
||||||
🔽 <PillarLabel pillar={this.props.pillar} status={this.props.pillarsToStatuses[this.props.pillar]} />
|
|
||||||
</h3>
|
|
||||||
</Panel.Title>
|
|
||||||
</Panel.Heading>
|
|
||||||
<Panel.Collapse>
|
|
||||||
<Panel.Body>
|
|
||||||
<DirectivesStatusTable directivesStatus={this.props.directivesStatus}/>
|
|
||||||
</Panel.Body>
|
|
||||||
</Panel.Collapse>
|
|
||||||
</Panel>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SinglePillarDirectivesStatus.propTypes = {
|
|
||||||
directivesStatus: PropTypes.array,
|
|
||||||
pillar: PropTypes.string,
|
|
||||||
};
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
import AuthComponent from "../../AuthComponent";
|
||||||
|
import PillarLabel from "./PillarLabel";
|
||||||
|
import RecommendationsStatusTable from "./RecommendationsStatusTable";
|
||||||
|
import React from "react";
|
||||||
|
import * as PropTypes from "prop-types";
|
||||||
|
import {Panel} from "react-bootstrap";
|
||||||
|
|
||||||
|
export default class SinglePillarRecommendationsStatus extends AuthComponent {
|
||||||
|
render() {
|
||||||
|
if (this.props.recommendationsStatus.length === 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return (
|
||||||
|
<Panel>
|
||||||
|
<Panel.Heading>
|
||||||
|
<Panel.Title toggle>
|
||||||
|
<h3 style={{"text-align": "center", "margin-top": "1px", "margin-bottom": "1px"}}>
|
||||||
|
<i className="fa fa-chevron-down" /> <PillarLabel pillar={this.props.pillar} status={this.props.pillarsToStatuses[this.props.pillar]} />
|
||||||
|
</h3>
|
||||||
|
</Panel.Title>
|
||||||
|
</Panel.Heading>
|
||||||
|
<Panel.Collapse>
|
||||||
|
<Panel.Body>
|
||||||
|
<RecommendationsStatusTable directivesStatus={this.props.recommendationsStatus}/>
|
||||||
|
</Panel.Body>
|
||||||
|
</Panel.Collapse>
|
||||||
|
</Panel>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SinglePillarRecommendationsStatus.propTypes = {
|
||||||
|
recommendationsStatus: PropTypes.array,
|
||||||
|
pillar: PropTypes.string,
|
||||||
|
};
|
Loading…
Reference in New Issue