Added the the ability to assing info/warnings to configuration fields/sections. Moved network warning under "Scope"

This commit is contained in:
VakarisZ 2020-07-27 16:48:33 +03:00
parent 0be9b19186
commit 64a8d71439
4 changed files with 28 additions and 16 deletions

View File

@ -19,7 +19,9 @@ BASIC_NETWORK = {
}, },
"default": [ "default": [
], ],
"description": "List of IPs that the Monkey will not scan." "description": "List of IPs that the Monkey will not scan.",
"info": "The Monkey scans its subnet if \"Local network scan\" is ticked. "
"Additionally the monkey scans machines according to \"Scan target list\"."
}, },
"local_network_scan": { "local_network_scan": {
"title": "Local network scan", "title": "Local network scan",

View File

@ -0,0 +1,20 @@
import ObjectField from 'react-jsonschema-form-bs4/lib/components/fields/ArrayField';
import * as React from 'react';
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
import {faInfoCircle} from '@fortawesome/free-solid-svg-icons/faInfoCircle';
class FieldWithInfo extends React.Component {
render() {
return (
<>
<div className='alert alert-info'>
<FontAwesomeIcon icon={faInfoCircle} style={{'marginRight': '5px'}}/>
{this.props.schema.info}
</div>
<ObjectField {...this.props} />
</>);
}
}
export default FieldWithInfo;

View File

@ -1,6 +1,7 @@
import AdvancedMultiSelect from '../ui-components/AdvancedMultiSelect'; import AdvancedMultiSelect from '../ui-components/AdvancedMultiSelect';
import PbaInput from './PbaInput'; import PbaInput from './PbaInput';
import {API_PBA_LINUX, API_PBA_WINDOWS} from '../pages/ConfigurePage'; import {API_PBA_LINUX, API_PBA_WINDOWS} from '../pages/ConfigurePage';
import FieldWithInfo from './FieldWithInfo';
export default function UiSchema(props) { export default function UiSchema(props) {
const UiSchema = { const UiSchema = {
@ -16,7 +17,10 @@ export default function UiSchema(props) {
basic_network: { basic_network: {
'ui:order': ['scope', 'network_analysis'], 'ui:order': ['scope', 'network_analysis'],
scope: { scope: {
subnet_scan_list:{ blocked_ips: {
'ui:field': FieldWithInfo
},
subnet_scan_list: {
format: 'ip-list' format: 'ip-list'
} }
} }

View File

@ -6,7 +6,6 @@ import AuthComponent from '../AuthComponent';
import ConfigMatrixComponent from '../attack/ConfigMatrixComponent'; import ConfigMatrixComponent from '../attack/ConfigMatrixComponent';
import UiSchema from '../configuration-components/UiSchema'; import UiSchema from '../configuration-components/UiSchema';
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
import {faInfoCircle} from '@fortawesome/free-solid-svg-icons/faInfoCircle';
import {faCheck} from '@fortawesome/free-solid-svg-icons/faCheck'; import {faCheck} from '@fortawesome/free-solid-svg-icons/faCheck';
import {faExclamationCircle} from '@fortawesome/free-solid-svg-icons/faExclamationCircle'; import {faExclamationCircle} from '@fortawesome/free-solid-svg-icons/faExclamationCircle';
import {formValidationFormats} from '../configuration-components/ValidationFormats'; import {formValidationFormats} from '../configuration-components/ValidationFormats';
@ -352,7 +351,6 @@ class ConfigurePageComponent extends AuthComponent {
} else { } else {
return ( return (
<div> <div>
{this.renderBasicNetworkWarning()}
<Form {...formProperties}> <Form {...formProperties}>
<button type='submit' className={'hidden'}>Submit</button> <button type='submit' className={'hidden'}>Submit</button>
</Form> </Form>
@ -377,18 +375,6 @@ class ConfigurePageComponent extends AuthComponent {
}) })
} }
renderBasicNetworkWarning = () => {
if (this.state.selectedSection === 'basic_network') {
return (<div className='alert alert-info'>
<FontAwesomeIcon icon={faInfoCircle} style={{'marginRight': '5px'}}/>
The Monkey scans its subnet if "Local network scan" is ticked. Additionally the monkey scans machines
according to "Scan target list".
</div>)
} else {
return (<div/>)
}
};
renderNav = () => { renderNav = () => {
return (<Nav variant='tabs' return (<Nav variant='tabs'
fill fill