summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorAnsuel Smith <ansuelsmth@gmail.com>2021-09-18 16:25:23 +0200
committerAnsuel Smith <ansuelsmth@gmail.com>2021-09-18 16:27:00 +0200
commit085c4a08f5bf50919731304a962cfcd2b592d523 (patch)
tree1a8c27e4cc1958048d15c2e96bea097343ac8ab7 /modules
parent2a97d5533cba419f51da0b550b00a34bc9f50cce (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')
-rw-r--r--modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js27
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')