From 74e8fb0c8edccdc34263748809c9500766af622c Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 16 Apr 2020 15:38:09 +0200 Subject: [PATCH] luci-mod-system: sshkeys.js: make readonly on insufficient ACLs Signed-off-by: Jo-Philipp Wich --- .../resources/view/system/sshkeys.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js index 487621daa..4740b8c9d 100644 --- a/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js +++ b/modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js @@ -1,9 +1,12 @@ 'use strict'; +'require baseclass'; 'require view'; 'require fs'; 'require ui'; -var SSHPubkeyDecoder = L.Class.singleton({ +var isReadonlyView = !L.hasViewPermission() || null; + +var SSHPubkeyDecoder = baseclass.singleton({ lengthDecode: function(s, off) { var l = (s.charCodeAt(off++) << 24) | @@ -224,17 +227,23 @@ return view.extend({ }, render: function(keys) { - var list = E('div', { 'class': 'cbi-dynlist', 'dragover': dragKey, 'drop': dropKey }, [ + var list = E('div', { + 'class': 'cbi-dynlist', + 'dragover': isReadonlyView ? null : dragKey, + 'drop': isReadonlyView ? null : dropKey + }, [ E('div', { 'class': 'add-item' }, [ E('input', { 'class': 'cbi-input-text', 'type': 'text', 'placeholder': _('Paste or drag SSH key file…') , - 'keydown': function(ev) { if (ev.keyCode === 13) addKey(ev) } + 'keydown': function(ev) { if (ev.keyCode === 13) addKey(ev) }, + 'disabled': isReadonlyView }), E('button', { 'class': 'cbi-button', - 'click': ui.createHandlerFn(this, addKey) + 'click': ui.createHandlerFn(this, addKey), + 'disabled': isReadonlyView }, _('Add key')) ]) ]); @@ -244,7 +253,7 @@ return view.extend({ if (pubkey) list.insertBefore(E('div', { class: 'item', - click: ui.createHandlerFn(this, removeKey), + click: isReadonlyView ? null : ui.createHandlerFn(this, removeKey), 'data-key': key }, [ E('strong', pubkey.comment || _('Unnamed key')), E('br'), -- 2.25.1