luci-proto-wireguard: Add generate key button
Signed-off-by: Wojciech Jowsa <wojciech.jowsa@gmail.com> [minor indentation fix, use bound section_id value, remove empty translation] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
c4a4e43e2e
commit
60ce87a197
3 changed files with 56 additions and 0 deletions
|
@ -1,8 +1,16 @@
|
|||
'use strict';
|
||||
'require ui';
|
||||
'require uci';
|
||||
'require rpc';
|
||||
'require form';
|
||||
'require network';
|
||||
|
||||
var generateKey = rpc.declare({
|
||||
object: 'luci.wireguard',
|
||||
method: 'generateKeyPair',
|
||||
expect: { keys: {} }
|
||||
});
|
||||
|
||||
function validateBase64(section_id, value) {
|
||||
if (value.length == 0)
|
||||
return true;
|
||||
|
@ -55,6 +63,18 @@ return network.registerProtocol('wireguard', {
|
|||
o.validate = validateBase64;
|
||||
o.rmempty = false;
|
||||
|
||||
o = s.taboption('general', form.Button, 'generate_key', _('Generate Key'));
|
||||
o.inputstyle = 'apply';
|
||||
o.onclick = ui.createHandlerFn(this, function(section_id, ev) {
|
||||
return generateKey().then(function(keypair) {
|
||||
var keyInput = document.getElementById('widget.cbid.network.%s.private_key'.format(section_id)),
|
||||
changeEvent = new Event('change');
|
||||
|
||||
keyInput.value = keypair.priv || '';
|
||||
keyInput.dispatchEvent(changeEvent);
|
||||
});
|
||||
}, s.section);
|
||||
|
||||
o = s.taboption('general', form.Value, 'listen_port', _('Listen Port'), _('Optional. UDP port used for outgoing and incoming packets.'));
|
||||
o.datatype = 'port';
|
||||
o.placeholder = _('random');
|
||||
|
|
26
protocols/luci-proto-wireguard/root/usr/libexec/rpcd/luci.wireguard
Executable file
26
protocols/luci-proto-wireguard/root/usr/libexec/rpcd/luci.wireguard
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
case "$1" in
|
||||
list)
|
||||
json_init
|
||||
json_add_object "generateKeyPair"
|
||||
json_close_object
|
||||
json_dump
|
||||
;;
|
||||
call)
|
||||
case "$2" in
|
||||
generateKeyPair)
|
||||
prv=$(wg genkey)
|
||||
pub=$(echo $prv | wg pubkey)
|
||||
json_init
|
||||
json_add_object "keys"
|
||||
json_add_string "priv" "$prv"
|
||||
json_add_string "pub" "$pub"
|
||||
json_close_object
|
||||
json_dump
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"luci-proto-wireguard": {
|
||||
"description": "Grant access to LuCI Wireguard procedures",
|
||||
"write": {
|
||||
"ubus": {
|
||||
"luci.wireguard": [ "generateKeyPair" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue