luci-mod-status: assoclist: hide wifi disconnect on insufficient ACLs
authorJo-Philipp Wich <jo@mein.io>
Thu, 16 Apr 2020 13:32:06 +0000 (15:32 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 16 Apr 2020 13:32:32 +0000 (15:32 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/60_wifi.js

index 115fe9909550e3c45cbdc3eb48d0dd0c38da83ea..1e3aeb2426fe12627f8d0f2b429fcc21c77a3117 100644 (file)
@@ -2,6 +2,14 @@
 'require baseclass';
 'require dom';
 'require network';
+'require rpc';
+
+var callSessionAccess = rpc.declare({
+       object: 'session',
+       method: 'access',
+       params: [ 'scope', 'object', 'function' ],
+       expect: { 'access': false }
+});
 
 function renderbox(radio, networks) {
        var chan = null,
@@ -91,7 +99,8 @@ return baseclass.extend({
                return Promise.all([
                        network.getWifiDevices(),
                        network.getWifiNetworks(),
-                       network.getHostHints()
+                       network.getHostHints(),
+                       callSessionAccess('access-group', 'luci-mod-status-index-wifi', 'write')
                ]).then(function(radios_networks_hints) {
                        var tasks = [];
 
@@ -110,7 +119,8 @@ return baseclass.extend({
                var seen = {},
                    radios = data[0],
                    networks = data[1],
-                   hosthints = data[2];
+                   hosthints = data[2],
+                   hasWritePermission = data[3];
 
                var table = E('div', { 'class': 'network-status-table' });
 
@@ -209,7 +219,7 @@ return baseclass.extend({
                                        ])
                                ];
 
-                               if (networks[i].isClientDisconnectSupported()) {
+                               if (networks[i].isClientDisconnectSupported() && hasWritePermission) {
                                        if (assoclist.firstElementChild.childNodes.length < 6)
                                                assoclist.firstElementChild.appendChild(E('div', { 'class': 'th cbi-section-actions' }));