From b49cd75b1d3642964025e3a337303b80dc3c44e9 Mon Sep 17 00:00:00 2001 From: Steve Patrick <29751037+audiobibleplayer@users.noreply.github.com> Date: Sun, 20 May 2018 20:45:58 +0800 Subject: [PATCH] Issue #5: Create a public network --- src/controllers/networkController.js | 22 ++++++++++++++++++++++ src/routes/zt_controller.js | 3 +++ src/views/private.pug | 26 ++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 src/views/private.pug diff --git a/src/controllers/networkController.js b/src/controllers/networkController.js index 37bceae..a9b6c66 100644 --- a/src/controllers/networkController.js +++ b/src/controllers/networkController.js @@ -350,6 +350,28 @@ exports.ipAssignmentPool_delete = async function (req, res) { } } +// private POST +exports.private = async function (req, res) { + const nav = + { + active: 'networks', + whence: '' + } + + const private = + { + private: req.body.private + }; + + try { + const network = await zt.network_object(req.params.nwid, private); + nav.whence = '/controller/network/' + network.nwid; + res.render('private', {title: 'private', nav: nav, network: network}); + } catch (err) { + res.render('private', {title: 'private', nav: nav, error: 'Error applying private for network ' + req.params.nwid + ': ' + err}); + } +} + // v4AssignMode POST exports.v4AssignMode = async function (req, res) { const nav = diff --git a/src/routes/zt_controller.js b/src/routes/zt_controller.js index 3d48607..44603da 100644 --- a/src/routes/zt_controller.js +++ b/src/routes/zt_controller.js @@ -43,6 +43,9 @@ router.get('/network/:nwid/routes/:target_ip/:target_prefix/delete', restrict, n // POST request for routes router.post('/network/:nwid/routes', restrict, networkController.routes); +// POST request for private +router.post('/network/:nwid/private', restrict, networkController.private); + // POST request for v4AssignMode router.post('/network/:nwid/v4AssignMode', restrict, networkController.v4AssignMode); diff --git a/src/views/private.pug b/src/views/private.pug new file mode 100644 index 0000000..0b87bfb --- /dev/null +++ b/src/views/private.pug @@ -0,0 +1,26 @@ +//- + ztncui - ZeroTier network controller UI + Copyright (C) 2017-2018 Key Networks (https://key-networks.com) + Licensed under GPLv3 - see LICENSE for details. + +extends network_layout + +block net_content + script. + $(function() { + $('.checkbox').on('click', function() { + $.post('', {'private': $('#privateCheckBox').is(':checked')}); + }); + }); + + form(method='POST' action='') + table.table.table-responsive.table-striped.table-hover + tr + td(width='3%') + input#privateCheckBox.checkbox(type='checkbox' checked=(network.private? true : false)) + td Enable access control. Warning: if you disable this, you will not be able to de-authorize members of the network. Disable this only if you know what you are doing. + + if errors + ul + for err in errors + li!= err.msg