mirror of
https://github.com/openwrt/luci.git
synced 2025-12-21 21:24:35 +04:00
luci-proto-wireguard: adapt to use uqr
If for some reason luci-lib-uqr is absent, the GUI shows that the proto handler needs installing (since it now has a dep which is missing). Suitable action is to install the lib or remove/install wireguard again. Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
LUCI_TITLE:=Support for WireGuard VPN
|
LUCI_TITLE:=Support for WireGuard VPN
|
||||||
LUCI_DEPENDS:=+wireguard-tools +ucode
|
LUCI_DEPENDS:=+wireguard-tools +ucode +luci-lib-uqr
|
||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
|
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
'require form';
|
'require form';
|
||||||
'require network';
|
'require network';
|
||||||
'require validation';
|
'require validation';
|
||||||
|
'require uqr';
|
||||||
|
|
||||||
var generateKey = rpc.declare({
|
var generateKey = rpc.declare({
|
||||||
object: 'luci.wireguard',
|
object: 'luci.wireguard',
|
||||||
@@ -64,28 +65,16 @@ function generateDescription(name, texts) {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function invokeQREncode(data, code) {
|
function buildSVGQRCode(data, code) {
|
||||||
return fs.exec_direct('/usr/bin/qrencode', [
|
// pixel size larger than 4 clips right and bottom edges of complex configs
|
||||||
'--inline', '--8bit', '--type=SVG',
|
const options = {
|
||||||
'--output=-', '--', data
|
pixelSize: 4,
|
||||||
]).then(function(svg) {
|
whiteColor: 'white',
|
||||||
|
blackColor: 'black'
|
||||||
|
};
|
||||||
|
const svg = uqr.renderSVG(data, options);
|
||||||
code.style.opacity = '';
|
code.style.opacity = '';
|
||||||
dom.content(code, Object.assign(E(svg), { style: 'width:100%;height:auto' }));
|
dom.content(code, Object.assign(E(svg), { style: 'width:100%;height:auto' }));
|
||||||
}).catch(function(error) {
|
|
||||||
code.style.opacity = '';
|
|
||||||
|
|
||||||
if (L.isObject(error) && error.name == 'NotFoundError') {
|
|
||||||
dom.content(code, [
|
|
||||||
Object.assign(E(qrIcon), { style: 'width:32px;height:32px;opacity:.2' }),
|
|
||||||
E('p', _('The <em>qrencode</em> package is required for generating an QR code image of the configuration.'))
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dom.content(code, [
|
|
||||||
_('Unable to generate QR code: %s').format(L.isObject(error) ? error.message : error)
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var cbiKeyPairGenerate = form.DummyValue.extend({
|
var cbiKeyPairGenerate = form.DummyValue.extend({
|
||||||
@@ -779,7 +768,7 @@ return network.registerProtocol('wireguard', {
|
|||||||
conf.firstChild.data = configGenerator(endpoint.getValue(), ips.getValue(), eips.getValue(), dns.getValue());
|
conf.firstChild.data = configGenerator(endpoint.getValue(), ips.getValue(), eips.getValue(), dns.getValue());
|
||||||
code.style.opacity = '.5';
|
code.style.opacity = '.5';
|
||||||
|
|
||||||
invokeQREncode(conf.firstChild.data, code);
|
buildSVGQRCode(conf.firstChild.data, code);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -833,7 +822,7 @@ return network.registerProtocol('wireguard', {
|
|||||||
}, [ peer_config ])
|
}, [ peer_config ])
|
||||||
]);
|
]);
|
||||||
|
|
||||||
invokeQREncode(peer_config, node.firstChild);
|
buildSVGQRCode(peer_config, node.firstChild);
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,9 +2,6 @@
|
|||||||
"luci-proto-wireguard": {
|
"luci-proto-wireguard": {
|
||||||
"description": "Grant access to LuCI Wireguard procedures",
|
"description": "Grant access to LuCI Wireguard procedures",
|
||||||
"read": {
|
"read": {
|
||||||
"file": {
|
|
||||||
"/usr/bin/qrencode --inline --8bit --type=SVG --output=- -- *": [ "exec" ]
|
|
||||||
},
|
|
||||||
"ubus": {
|
"ubus": {
|
||||||
"luci.wireguard": [
|
"luci.wireguard": [
|
||||||
"getWgInstances"
|
"getWgInstances"
|
||||||
|
|||||||
Reference in New Issue
Block a user