luci-app-tor: add config for tor
Currently the UCI for the Tor allows to set only a list of configs to include. The only way to configure it for a user is to upload its own config and add it to list of included. We can simplify this with the app. Signed-off-by: Sergey Ponomarev <stokito@gmail.com>
This commit is contained in:
parent
a4e586397e
commit
c170dfab91
4 changed files with 49 additions and 2 deletions
|
@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI app to configure Tor
|
LUCI_TITLE:=LuCI app to configure Tor
|
||||||
LUCI_DEPENDS:=+luci-base +tor +tor-hs
|
LUCI_DEPENDS:=+luci-base +tor +tor-hs
|
||||||
PKG_VERSION:=1.0.0
|
PKG_VERSION:=1.1.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_MAINTAINER:=Sergey Ponomarev <stokito@gmail.com>
|
PKG_MAINTAINER:=Sergey Ponomarev <stokito@gmail.com>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
'use strict';
|
||||||
|
'require view';
|
||||||
|
'require form';
|
||||||
|
'require uci';
|
||||||
|
|
||||||
|
|
||||||
|
return view.extend({
|
||||||
|
render: function () {
|
||||||
|
var m, s, o;
|
||||||
|
|
||||||
|
m = new form.Map('tor', _('Tor onion router'),
|
||||||
|
_('For further information <a %s>check the documentation</a>')
|
||||||
|
.format('href="https://openwrt.org/docs/guide-user/services/tor/client" target="_blank" rel="noreferrer"')
|
||||||
|
);
|
||||||
|
|
||||||
|
s = m.section(form.NamedSection, 'conf', 'tor');
|
||||||
|
|
||||||
|
o = s.option(form.DynamicList, 'tail_include', _('Include configs'));
|
||||||
|
o.datatype = 'list(string)';
|
||||||
|
|
||||||
|
o = s.option(form.FileUpload, '_custom_config', _('Custom config'));
|
||||||
|
o.default = '/etc/tor/torrc_custom';
|
||||||
|
o.root_directory = '/etc/tor/';
|
||||||
|
o.optional = true;
|
||||||
|
o.write = function(section_id, formvalue) {
|
||||||
|
let tail_include = uci.get('tor', section_id, 'tail_include');
|
||||||
|
if (!tail_include.includes(formvalue)) {
|
||||||
|
tail_include.push(formvalue);
|
||||||
|
return uci.set('tor', section_id, 'tail_include', tail_include);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return m.render();
|
||||||
|
},
|
||||||
|
});
|
|
@ -19,5 +19,13 @@
|
||||||
"type": "view",
|
"type": "view",
|
||||||
"path": "tor/tor-hs"
|
"path": "tor/tor-hs"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"admin/services/tor/tor": {
|
||||||
|
"title": "Tor Onion router",
|
||||||
|
"order": 30,
|
||||||
|
"action": {
|
||||||
|
"type": "view",
|
||||||
|
"path": "tor/tor"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,10 @@
|
||||||
"uci": [
|
"uci": [
|
||||||
"tor",
|
"tor",
|
||||||
"tor-hs"
|
"tor-hs"
|
||||||
]
|
],
|
||||||
|
"file": {
|
||||||
|
"/etc/tor/*": [ "write" ]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue