luci-mod-network: require ssid when join hidden wifi 4565/head
authorAnsuel Smith <ansuelsmth@gmail.com>
Sun, 1 Nov 2020 14:34:23 +0000 (15:34 +0100)
committerAnsuel Smith <ansuelsmth@gmail.com>
Sun, 1 Nov 2020 18:04:06 +0000 (19:04 +0100)
WiFi join won't work if is tried to connect to a Hidden Wifi without specifying the WiFi SSID.

Fixes: #2085
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js

index 9669055f18a980cd8eda71b9a7e9bd4765022343..bb987721798d6a6473c35ef39e9180dfc42643b1 100644 (file)
@@ -1790,11 +1790,13 @@ return view.extend({
                s.handleJoinConfirm = function(radioDev, bss, form, ev) {
                        var nameopt = L.toArray(form.lookupOption('name', '_new_'))[0],
                            passopt = L.toArray(form.lookupOption('password', '_new_'))[0],
+                           ssidopt = L.toArray(form.lookupOption('ssid', '_new_'))[0],
                            bssidopt = L.toArray(form.lookupOption('bssid', '_new_'))[0],
                            zoneopt = L.toArray(form.lookupOption('zone', '_new_'))[0],
                            replopt = L.toArray(form.lookupOption('replace', '_new_'))[0],
                            nameval = (nameopt && nameopt.isValid('_new_')) ? nameopt.formvalue('_new_') : null,
                            passval = (passopt && passopt.isValid('_new_')) ? passopt.formvalue('_new_') : null,
+                           ssidval = (ssidopt && ssidopt.isValid('_new_')) ? ssidopt.formvalue('_new_') : null,
                            bssidval = (bssidopt && bssidopt.isValid('_new_')) ? bssidopt.formvalue('_new_') : null,
                            zoneval = zoneopt ? zoneopt.formvalue('_new_') : null,
                            enc = L.isObject(bss.encryption) ? bss.encryption : null,
@@ -1841,6 +1843,9 @@ return view.extend({
                                        uci.set('wireless', section_id, 'bssid', bss.bssid);
                                }
 
+                               if (ssidval != null)
+                                       uci.set('wireless', section_id, 'ssid', ssidval);
+
                                if (is_sae) {
                                        uci.set('wireless', section_id, 'encryption', 'sae');
                                        uci.set('wireless', section_id, 'key', passval);
@@ -1911,6 +1916,11 @@ return view.extend({
                                ]).then(this.renderContents.bind(this));
                        };
 
+                       if (bss.ssid == null) {
+                               name = s2.option(form.Value, 'ssid', _('Network SSID'), _('The correct SSID must be manually specified when joining a hidden wireless network'));
+                               name.rmempty = false;
+                       };
+
                        replace = s2.option(form.Flag, 'replace', _('Replace wireless configuration'), _('Check this option to delete the existing networks from this radio.'));
 
                        name = s2.option(form.Value, 'name', _('Name of the new network'), _('The allowed characters are: <code>A-Z</code>, <code>a-z</code>, <code>0-9</code> and <code>_</code>'));