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

Compare commits

..

3 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
3 changed files with 44 additions and 17 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,7 +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,
"80211w": PropTypes.bool.isRequired, ieee80211w_disabled: PropTypes.bool.isRequired,
}), }),
formErrors: PropTypes.object.isRequired, formErrors: PropTypes.object.isRequired,
setFormValue: PropTypes.func.isRequired, setFormValue: PropTypes.func.isRequired,
@ -228,11 +227,11 @@ function DeviceForm({
helpText={_( helpText={_(
"In case you have trouble connecting to WiFi Access Point, try disabling Management Frame Protection." "In case you have trouble connecting to WiFi Access Point, try disabling Management Frame Protection."
)} )}
checked={formData["80211w"]} checked={formData.ieee80211w_disabled}
onChange={setFormValue((value) => ({ onChange={setFormValue((value) => ({
devices: { devices: {
[deviceIndex]: { [deviceIndex]: {
"80211w": { $set: value }, ieee80211w_disabled: { $set: value },
}, },
}, },
}))} }))}

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
+ <small
+ class=\\"form-text text-muted\\"
+ >
+ If set, network is not visible when scanning for available networks.
+ </small>
+ </label> + </label>
+ <small
+ class=\\"form-text text-muted mt-0 mb-3\\"
+ >
+ If set, network is not visible when scanning for available networks.
+ </small>
+ </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