diff options
author | Ansuel Smith <ansuelsmth@gmail.com> | 2021-09-18 16:25:23 +0200 |
---|---|---|
committer | Ansuel Smith <ansuelsmth@gmail.com> | 2021-09-18 16:27:00 +0200 |
commit | 085c4a08f5bf50919731304a962cfcd2b592d523 (patch) | |
tree | 1a8c27e4cc1958048d15c2e96bea097343ac8ab7 /modules/luci-mod-status/htdocs/luci-static | |
parent | 2a97d5533cba419f51da0b550b00a34bc9f50cce (diff) |
luci-mod-status: fix wrong logic for maclist adding feature
Currently any new entry added to the black/whitelist deletes the
others. Fix this and improve the rule apply by firstly disconnect
the wifi client.
Fixes: #5343
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Diffstat (limited to 'modules/luci-mod-status/htdocs/luci-static')
-rw-r--r-- | modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js index b03d1f4111..333884449f 100644 --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js @@ -48,21 +48,18 @@ return baseclass.extend({ ev.currentTarget.disabled = true; ev.currentTarget.blur(); - if (exec == 'addlist') { - var macs = [ mac ] + /* Disconnect client before adding to maclist */ + wifinet.disconnectClient(mac, true, 5, 60000); - for (var mac in this.iface_maclist) { - macs.push(mac) - } + if (exec == 'addlist') { + wifinet.maclist.push(mac); - uci.set('wireless', wifinet.sid, 'maclist', macs); + uci.set('wireless', wifinet.sid, 'maclist', wifinet.maclist); return uci.save() .then(L.bind(L.ui.changes.init, L.ui.changes)) .then(L.bind(L.ui.changes.displayChanges, L.ui.changes)); } - - wifinet.disconnectClient(mac, true, 5, 60000); }, handleGetWPSStatus: function(wifinet) { @@ -234,14 +231,14 @@ return baseclass.extend({ var rows = []; for (var i = 0; i < networks.length; i++) { - var macfilter = uci.get('wireless', networks[i].sid, 'macfilter'); + var macfilter = uci.get('wireless', networks[i].sid, 'macfilter'), + maclist = {}; if (macfilter != null && macfilter != 'disable') { - this.isDeviceAdded = {}; - var macs = L.toArray(uci.get('wireless', networks[i].sid, 'maclist')); - for (var j = 0; j < macs.length; j++) { - var mac = macs[j].toUpperCase(); - this.isDeviceAdded[mac] = true; + networks[i].maclist = L.toArray(uci.get('wireless', networks[i].sid, 'maclist')); + for (var j = 0; j < networks[i].maclist.length; j++) { + var mac = networks[i].maclist[j].toUpperCase(); + maclist[mac] = true; } } @@ -324,7 +321,7 @@ return baseclass.extend({ if (assoclist.firstElementChild.childNodes.length < 6) assoclist.firstElementChild.appendChild(E('th', { 'class': 'th cbi-section-actions' })); - if (macfilter != null && macfilter != 'disable' && !this.isDeviceAdded[bss.mac]) { + if (macfilter != null && macfilter != 'disable' && !maclist[bss.mac]) { row.push(new L.ui.ComboButton('button', { 'addlist': macfilter == 'allow' ? _('Add to Whitelist') : _('Add to Blacklist'), 'disconnect': _('Disconnect') |