diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/luci-mod-system/htdocs/luci-static/resources/view/system/sshkeys.js | 19 |
1 files 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 487621daa3..4740b8c9dd 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'), |