1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2024-11-14 17:35:35 +01:00

Compare commits

...

4 Commits

Author SHA1 Message Date
Aleksandr Gumroian
c5b020c1e9 Merge branch 'feature/add-mfp-switch' into 'dev'
Draft: Add a switch to disable Management Frame Protection (802.11w)

Closes #26

See merge request turris/reforis/foris-js!202
2022-12-01 17:19:44 +01:00
Aleksandr Gumroian
003606cb8c
Update Snapshots 2022-12-01 17:13:44 +01:00
Aleksandr Gumroian
aeddd9ce74
Add a switch to disable Management Frame Protection (802.11w)
In the case of WPA3 encryption Management Frame Protection is enabled
by default in OpenWrt.

But in some cases, it causes trouble with particular devices that
fails to connect to WiFi Access Point - see:
https://forum.turris.cz/t/turris-omnia-wifi-health/15704/15
2022-12-01 16:19:38 +01:00
Aleksandr Gumroian
f3a1090dbd Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!200
2022-06-03 11:46:19 +02:00
3 changed files with 65 additions and 18 deletions

View File

@ -8,7 +8,6 @@
import React from "react"; import React from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { Switch } from "../../bootstrap/Switch"; import { Switch } from "../../bootstrap/Switch";
import { CheckBox } from "../../bootstrap/CheckBox";
import { PasswordInput } from "../../bootstrap/PasswordInput"; import { PasswordInput } from "../../bootstrap/PasswordInput";
import { RadioSet } from "../../bootstrap/RadioSet"; import { RadioSet } from "../../bootstrap/RadioSet";
import { Select } from "../../bootstrap/Select"; import { Select } from "../../bootstrap/Select";
@ -65,6 +64,7 @@ DeviceForm.propTypes = {
guest_wifi: PropTypes.object.isRequired, guest_wifi: PropTypes.object.isRequired,
encryption: PropTypes.string.isRequired, encryption: PropTypes.string.isRequired,
available_bands: PropTypes.array.isRequired, available_bands: PropTypes.array.isRequired,
ieee80211w_disabled: PropTypes.bool.isRequired,
}), }),
formErrors: PropTypes.object.isRequired, formErrors: PropTypes.object.isRequired,
setFormValue: PropTypes.func.isRequired, setFormValue: PropTypes.func.isRequired,
@ -102,7 +102,7 @@ function DeviceForm({
switchHeading switchHeading
{...props} {...props}
/> />
{formData.enabled ? ( {formData.enabled && (
<> <>
<TextInput <TextInput
label="SSID" label="SSID"
@ -142,7 +142,7 @@ function DeviceForm({
{...props} {...props}
/> />
<CheckBox <Switch
label={_("Hide SSID")} label={_("Hide SSID")}
helpText={HELP_TEXTS.hidden} helpText={HELP_TEXTS.hidden}
checked={formData.hidden} checked={formData.hidden}
@ -220,6 +220,25 @@ function DeviceForm({
{...props} {...props}
/> />
{(formData.encryption === "WPA3" ||
formData.encryption === "WPA2/3") && (
<Switch
label={_("Disable Management Frame Protection")}
helpText={_(
"In case you have trouble connecting to WiFi Access Point, try disabling Management Frame Protection."
)}
checked={formData.ieee80211w_disabled}
onChange={setFormValue((value) => ({
devices: {
[deviceIndex]: {
ieee80211w_disabled: { $set: value },
},
},
}))}
{...props}
/>
)}
{hasGuestNetwork && ( {hasGuestNetwork && (
<WifiGuestForm <WifiGuestForm
formData={{ formData={{
@ -232,8 +251,8 @@ function DeviceForm({
/> />
)} )}
</> </>
) : null} )}
{divider ? <hr /> : null} {divider && <hr />}
</> </>
); );
} }

View File

@ -59,6 +59,10 @@ function prepDataToSubmit(formData) {
if (!device.guest_wifi.enabled) if (!device.guest_wifi.enabled)
formData.devices[idx].guest_wifi = { enabled: false }; formData.devices[idx].guest_wifi = { enabled: false };
if (device.encryption === "WPA2") {
delete formData.devices[idx].ieee80211w_disabled;
}
}); });
return formData; return formData;
} }

View File

@ -337,7 +337,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
- First value - First value
+ Second value + Second value
@@ -500,10 +500,92 @@ @@ -524,10 +524,92 @@
> >
Enables Wi-Fi for guests, which is separated from LAN network. Devices connected to this network are allowed to access the internet, but aren't allowed to access other devices and the configuration interface of the router. Parameters of the guest network can be set in the Guest network tab. Enables Wi-Fi for guests, which is separated from LAN network. Devices connected to this network are allowed to access the internet, but aren't allowed to access other devices and the configuration interface of the router. Parameters of the guest network can be set in the Guest network tab.
</small> </small>
@ -347,7 +347,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ class=\\"form-group\\" + class=\\"form-group\\"
+ > + >
+ <label + <label
+ for=\\"22\\" + for=\\"24\\"
+ > + >
+ SSID + SSID
+ </label> + </label>
@ -356,7 +356,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ > + >
+ <input + <input
+ class=\\"form-control\\" + class=\\"form-control\\"
+ id=\\"22\\" + id=\\"24\\"
+ type=\\"text\\" + type=\\"text\\"
+ value=\\"TestGuestSSID\\" + value=\\"TestGuestSSID\\"
+ /> + />
@ -386,7 +386,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ class=\\"form-group\\" + class=\\"form-group\\"
+ > + >
+ <label + <label
+ for=\\"23\\" + for=\\"25\\"
+ > + >
+ Password + Password
+ </label> + </label>
@ -396,7 +396,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ <input + <input
+ autocomplete=\\"current-password\\" + autocomplete=\\"current-password\\"
+ class=\\"form-control is-invalid\\" + class=\\"form-control is-invalid\\"
+ id=\\"23\\" + id=\\"25\\"
+ required=\\"\\" + required=\\"\\"
+ type=\\"password\\" + type=\\"password\\"
+ value=\\"\\" + value=\\"\\"
@ -430,7 +430,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
class=\\"form-group switch\\" class=\\"form-group switch\\"
> >
<div <div
@@ -527,10 +609,11 @@ @@ -551,10 +633,11 @@
<div <div
class=\\"text-right\\" class=\\"text-right\\"
> >
@ -449,7 +449,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
- First value - First value
+ Second value + Second value
@@ -22,10 +22,488 @@ @@ -22,10 +22,512 @@
Wi-Fi 1 Wi-Fi 1
</h2> </h2>
</label> </label>
@ -537,7 +537,7 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ class=\\"form-group\\" + class=\\"form-group\\"
+ > + >
+ <div + <div
+ class=\\"custom-control custom-checkbox \\" + class=\\"custom-control custom-switch\\"
+ > + >
+ <input + <input
+ class=\\"custom-control-input\\" + class=\\"custom-control-input\\"
@ -549,12 +549,12 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ for=\\"6\\" + for=\\"6\\"
+ > + >
+ Hide SSID + Hide SSID
+ </label>
+ <small + <small
+ class=\\"form-text text-muted\\" + class=\\"form-text text-muted mt-0 mb-3\\"
+ > + >
+ If set, network is not visible when scanning for available networks. + If set, network is not visible when scanning for available networks.
+ </small> + </small>
+ </label>
+ </div> + </div>
+ </div> + </div>
+ <div + <div
@ -924,6 +924,30 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ class=\\"custom-control-label\\" + class=\\"custom-control-label\\"
+ for=\\"11\\" + for=\\"11\\"
+ > + >
+ Disable Management Frame Protection
+ </label>
+ <small
+ class=\\"form-text text-muted mt-0 mb-3\\"
+ >
+ In case you have trouble connecting to WiFi Access Point, try disabling Management Frame Protection.
+ </small>
+ </div>
+ </div>
+ <div
+ class=\\"form-group\\"
+ >
+ <div
+ class=\\"custom-control custom-switch\\"
+ >
+ <input
+ class=\\"custom-control-input\\"
+ id=\\"12\\"
+ type=\\"checkbox\\"
+ />
+ <label
+ class=\\"custom-control-label\\"
+ for=\\"12\\"
+ >
+ Enable Guest Wi-Fi + Enable Guest Wi-Fi
+ </label> + </label>
+ <small + <small