mirror of
https://github.com/Telecominfraproject/wlan-cloud-owprov-ui.git
synced 2025-10-30 02:02:30 +00:00
[WIFI-13815] Added fingerprint to service configuration
Signed-off-by: Charles <charles.bourque96@gmail.com>
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wlan-cloud-owprov-ui",
|
||||
"version": "3.1.0(2)",
|
||||
"version": "3.1.0(7)",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wlan-cloud-owprov-ui",
|
||||
"version": "3.1.0(2)",
|
||||
"version": "3.1.0(7)",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@chakra-ui/anatomy": "^2.1.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wlan-cloud-owprov-ui",
|
||||
"version": "3.1.0(2)",
|
||||
"version": "3.1.0(7)",
|
||||
"description": "",
|
||||
"main": "index.tsx",
|
||||
"scripts": {
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
import * as React from 'react';
|
||||
import { Heading, SimpleGrid } from '@chakra-ui/react';
|
||||
import Card from 'components/Card';
|
||||
import CardBody from 'components/Card/CardBody';
|
||||
import CardHeader from 'components/Card/CardHeader';
|
||||
import NumberField from 'components/FormFields/NumberField';
|
||||
import SelectField from 'components/FormFields/SelectField';
|
||||
|
||||
type Props = {
|
||||
isEditing: boolean;
|
||||
};
|
||||
|
||||
const modeOptions = [
|
||||
{
|
||||
value: 'always',
|
||||
label: 'Always',
|
||||
},
|
||||
{
|
||||
value: 'polled',
|
||||
label: 'Polled',
|
||||
},
|
||||
{
|
||||
value: 'final',
|
||||
label: 'Final',
|
||||
},
|
||||
{
|
||||
value: 'raw-data',
|
||||
label: 'Raw Data',
|
||||
},
|
||||
];
|
||||
|
||||
const Fingerprint = ({ isEditing }: Props) => (
|
||||
<Card variant="widget" mb={4}>
|
||||
<CardHeader>
|
||||
<Heading size="md" borderBottom="1px solid">
|
||||
Fingerprinting
|
||||
</Heading>
|
||||
</CardHeader>
|
||||
<CardBody>
|
||||
<SimpleGrid minChildWidth="200px" spacing="20px" mb={2} mt={2} w="100%">
|
||||
<SelectField
|
||||
name="configuration.fingerprint.mode"
|
||||
label="mode"
|
||||
options={modeOptions}
|
||||
isRequired
|
||||
isDisabled={!isEditing}
|
||||
/>
|
||||
<NumberField
|
||||
name="configuration.fingerprint.minimumAge"
|
||||
label="minimumAge"
|
||||
isRequired
|
||||
isDisabled={!isEditing}
|
||||
/>
|
||||
<NumberField
|
||||
name="configuration.fingerprint.maximumAge"
|
||||
label="maximumAge"
|
||||
isRequired
|
||||
isDisabled={!isEditing}
|
||||
/>
|
||||
<NumberField
|
||||
name="configuration.fingerprint.periodicity"
|
||||
label="periodicity"
|
||||
isRequired
|
||||
isDisabled={!isEditing}
|
||||
/>
|
||||
</SimpleGrid>
|
||||
</CardBody>
|
||||
</Card>
|
||||
);
|
||||
|
||||
export default Fingerprint;
|
||||
@@ -12,6 +12,7 @@ import AirtimePolicies from './AirtimePolicies';
|
||||
import DataPlane from './DataPlane';
|
||||
import DhcpRelay from './DhcpRelay';
|
||||
import FacebookWifi from './FacebookWifi';
|
||||
import Fingerprint from './Fingerprint';
|
||||
import Gps from './Gps';
|
||||
import Http from './Http';
|
||||
import Ieee8021x from './Ieee8021x';
|
||||
@@ -126,6 +127,7 @@ const ServicesSection = ({ editing, setSection, sectionInformation, removeSub })
|
||||
'data-plane',
|
||||
'dhcp-relay',
|
||||
'facebook-wifi',
|
||||
'fingerprint',
|
||||
'gps',
|
||||
'http',
|
||||
'ieee8021x',
|
||||
@@ -150,6 +152,7 @@ const ServicesSection = ({ editing, setSection, sectionInformation, removeSub })
|
||||
{isSubSectionActive('data-plane') && <DataPlane editing={editing} />}
|
||||
{isSubSectionActive('dhcp-relay') && <DhcpRelay isEditing={editing} />}
|
||||
{isSubSectionActive('facebook-wifi') && <FacebookWifi editing={editing} />}
|
||||
{isSubSectionActive('fingerprint') && <Fingerprint isEditing={editing} />}
|
||||
{isSubSectionActive('gps') && <Gps editing={editing} />}
|
||||
{isSubSectionActive('http') && <Http editing={editing} />}
|
||||
{isSubSectionActive('ieee8021x') && <Ieee8021x editing={editing} />}
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
import { object, number, string, array, bool } from 'yup';
|
||||
import { testFqdnHostname, testIpv4, testLength, testUcMac } from 'constants/formTests';
|
||||
|
||||
export const SERVICES_FINGERPRINT_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
mode: string().required(t('form.required')).oneOf(['always', 'polled', 'final', 'raw-data']).default('always'),
|
||||
minimumAge: number().required(t('form.required')).moreThan(-1).integer().default(60),
|
||||
maximumAge: number().required(t('form.required')).moreThan(-1).integer().default(60),
|
||||
periodicity: number().required(t('form.required')).moreThan(-1).integer().default(600),
|
||||
});
|
||||
|
||||
return useDefault ? shape : shape.nullable().default(undefined);
|
||||
};
|
||||
|
||||
export const SERVICES_DHCP_RELAY_VLAN_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
vlan: number().required(t('form.required')).moreThan(-1).lessThan(4097).integer().default(1),
|
||||
@@ -34,8 +45,8 @@ export const SERVICES_CLASSIFIER_DNS_SCHEMA = (t, useDefault = false) => {
|
||||
export const SERVICES_CLASSIFIER_PORTS_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
protocol: string().required(t('form.required')).default('any'),
|
||||
port: number().required(t('form.required')).positive().lessThan(4050).integer().default(1812),
|
||||
'range-end': number().required(t('form.required')).positive().lessThan(4050).integer().default(1813),
|
||||
port: number().required(t('form.required')).positive().lessThan(65536).integer().default(1812),
|
||||
'range-end': number().required(t('form.required')).positive().lessThan(65536).integer().default(1813),
|
||||
reclassify: bool().default(true),
|
||||
});
|
||||
|
||||
@@ -58,7 +69,7 @@ export const SERVICES_USER_SCHEMA = (t, useDefault = false) => {
|
||||
.test('services.ieee8021x.user.mac.length', t('form.invalid_mac_uc'), testUcMac)
|
||||
.default(''),
|
||||
'user-name': string().required(t('form.required')).default(''),
|
||||
'vlan-id': number().required(t('form.required')).moreThan(-1).lessThan(4097).integer().default(1),
|
||||
'vlan-id': number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(1),
|
||||
password: string()
|
||||
.required(t('form.required'))
|
||||
.test('services.ieee8021x.user.password.length', t('form.min_max_string', { min: 8, max: 63 }), (val) =>
|
||||
@@ -73,7 +84,7 @@ export const SERVICES_USER_SCHEMA = (t, useDefault = false) => {
|
||||
export const SERVICES_REALMS_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
realm: string().required(t('form.required')).default('*'),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(22),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(22),
|
||||
secret: string().required(t('form.required')).default(''),
|
||||
'auto-discover': bool().default(false),
|
||||
'use-local-certificates': bool().default(false),
|
||||
@@ -109,7 +120,7 @@ export const SERVICES_GPS_SCHEMA = (t, useDefault = false) => {
|
||||
|
||||
export const SERVICES_SSH_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(22),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(22),
|
||||
'password-authentication': bool().default(true),
|
||||
'authorized-keys': array()
|
||||
.of(string())
|
||||
@@ -144,7 +155,7 @@ export const SERVICES_RTTY_SCHEMA = (t, useDefault = false) => {
|
||||
.required(t('form.required'))
|
||||
.test('rtty.host.value', t('form.invalid_fqdn_host'), testFqdnHostname)
|
||||
.default(''),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(5912),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(5912),
|
||||
token: string()
|
||||
.required(t('form.required'))
|
||||
.test('rtty.token.length', t('form.min_max_string', { min: 32, max: 32 }), (val) =>
|
||||
@@ -158,16 +169,16 @@ export const SERVICES_RTTY_SCHEMA = (t, useDefault = false) => {
|
||||
export const SERVICES_LOG_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
host: string().required(t('form.required')).test('log.host.value', t('form.invalid_cidr'), testIpv4).default(''),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(5912),
|
||||
port: number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(5912),
|
||||
proto: string().required(t('form.required')).default('udp'),
|
||||
size: number().required(t('form.required')).moreThan(31).lessThan(65535).integer().default(1000),
|
||||
size: number().required(t('form.required')).moreThan(31).lessThan(65536).integer().default(1000),
|
||||
});
|
||||
|
||||
return useDefault ? shape : shape.nullable().default(undefined);
|
||||
};
|
||||
export const SERVICES_HTTP_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
'http-port': number().required(t('form.required')).moreThan(0).lessThan(65535).integer().default(80),
|
||||
'http-port': number().required(t('form.required')).moreThan(0).lessThan(65536).integer().default(80),
|
||||
});
|
||||
|
||||
return useDefault ? shape : shape.nullable().default(undefined);
|
||||
@@ -208,8 +219,8 @@ export const SERVICES_ONLINE_CHECK_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
'ping-hosts': array().of(string()).required(t('form.required')).min(1, t('form.required')).default([]),
|
||||
'download-hosts': array().of(string()).required(t('form.required')).min(1, t('form.required')).default([]),
|
||||
'check-interval': number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(60),
|
||||
'check-threshold': number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(1),
|
||||
'check-interval': number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(60),
|
||||
'check-threshold': number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(1),
|
||||
action: array().of(string()).required(t('form.required')).min(1, t('form.required')).default([]),
|
||||
});
|
||||
|
||||
@@ -292,7 +303,7 @@ export const SERVICES_FACEBOOK_WIFI_SCHEMA = (t, useDefault = false) => {
|
||||
export const SERVICES_AIRTIME_POLICIES_SCHEMA = (t, useDefault = false) => {
|
||||
const shape = object().shape({
|
||||
'dns-match': array().of(string()).required(t('form.required')).min(1, t('form.required')).default([]),
|
||||
'dns-weight': number().required(t('form.required')).moreThan(-1).lessThan(65535).integer().default(256),
|
||||
'dns-weight': number().required(t('form.required')).moreThan(-1).lessThan(65536).integer().default(256),
|
||||
});
|
||||
|
||||
return useDefault ? shape : shape.nullable().default(undefined);
|
||||
@@ -323,6 +334,7 @@ export const SERVICES_SCHEMA = (t, useDefault = false) =>
|
||||
ieee8021x: SERVICES_IEEE8021X_SCHEMA(t, useDefault),
|
||||
gps: SERVICES_GPS_SCHEMA(t, useDefault),
|
||||
'dhcp-relay': SERVICES_DHCP_RELAY_SCHEMA(t, useDefault),
|
||||
fingerprint: SERVICES_FINGERPRINT_SCHEMA(t, useDefault),
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -366,6 +378,8 @@ export const getSubSectionDefaults = (t, sub) => {
|
||||
return SERVICES_GPS_SCHEMA(t, true).cast();
|
||||
case 'dhcp-relay':
|
||||
return SERVICES_DHCP_RELAY_SCHEMA(t, true).cast();
|
||||
case 'fingerprint':
|
||||
return SERVICES_FINGERPRINT_SCHEMA(t, true).cast();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user