summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-openvpn/luasrc
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-openvpn/luasrc')
-rw-r--r--applications/luci-app-openvpn/luasrc/controller/openvpn.lua2
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua78
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua6
-rw-r--r--applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua4
-rw-r--r--applications/luci-app-openvpn/luasrc/view/openvpn/cbi-select-input-add.htm10
-rw-r--r--applications/luci-app-openvpn/luasrc/view/openvpn/pageswitch.htm8
6 files changed, 58 insertions, 50 deletions
diff --git a/applications/luci-app-openvpn/luasrc/controller/openvpn.lua b/applications/luci-app-openvpn/luasrc/controller/openvpn.lua
index 55c29d1c2a..2d57e8d3ad 100644
--- a/applications/luci-app-openvpn/luasrc/controller/openvpn.lua
+++ b/applications/luci-app-openvpn/luasrc/controller/openvpn.lua
@@ -5,7 +5,7 @@
module("luci.controller.openvpn", package.seeall)
function index()
- entry( {"admin", "vpn", "openvpn"}, cbi("openvpn"), _("OpenVPN") )
+ entry( {"admin", "vpn", "openvpn"}, cbi("openvpn"), _("OpenVPN") ).acl_depends = { "luci-app-openvpn" }
entry( {"admin", "vpn", "openvpn", "basic"}, cbi("openvpn-basic"), nil ).leaf = true
entry( {"admin", "vpn", "openvpn", "advanced"}, cbi("openvpn-advanced"), nil ).leaf = true
entry( {"admin", "vpn", "openvpn", "file"}, form("openvpn-file"), nil ).leaf = true
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
index 1971400b80..04934c8c11 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-advanced.lua
@@ -6,12 +6,13 @@ local fs = require("nixio.fs")
local knownParams = {
--
--Widget
- -- Name
+ -- ID
+ -- Display name
-- Default(s)
-- Description
-- Option(s)
- { "Service", {
+ { "service", translate("Service"), {
-- initialisation and daemon options
{ ListValue,
"verb",
@@ -128,7 +129,7 @@ local knownParams = {
{ Value,
"ipchange",
"/usr/bin/ovpn-ipchange",
- translate("Execute shell command on remote ip change"),
+ translate("Execute shell command on remote IP change"),
{ mode="p2p" } },
{ DynamicList,
"setenv",
@@ -164,7 +165,7 @@ local knownParams = {
translate("Enable a compression algorithm") },
} },
- { "Networking", {
+ { "networking", translate("Networking"), {
-- socket config
{ ListValue,
"mode",
@@ -173,7 +174,7 @@ local knownParams = {
{ Value,
"local",
"0.0.0.0",
- translate("Local host name or ip address") },
+ translate("Local host name or IP address") },
{ Value,
"port",
1194,
@@ -364,7 +365,7 @@ local knownParams = {
{dev_type="tun" } },
} },
- { "VPN", {
+ { "vpn", translate("VPN"), {
{ Value,
"server",
"10.200.200.0 255.255.255.0",
@@ -497,8 +498,7 @@ local knownParams = {
{ DynamicList,
"remote",
"1.2.3.4",
- translate("Remote host name or ip address"),
- { client="1" } },
+ translate("Remote host name or IP address") },
{ Flag,
"remote_random",
0,
@@ -561,7 +561,7 @@ local knownParams = {
translate("Specify whether the client is required to supply a valid certificate") },
} },
- { "Cryptography", {
+ { "cryptography", translate("Cryptography"), {
{ FileUpload,
"secret",
"/etc/openvpn/secret.key",
@@ -659,7 +659,7 @@ local knownParams = {
{ FileUpload,
"dh",
"/etc/easy-rsa/keys/dh1024.pem",
- translate("Diffie Hellman parameters") },
+ translate("Diffie-Hellman parameters") },
{ FileUpload,
"cert",
"/etc/easy-rsa/keys/some-client.crt",
@@ -679,25 +679,27 @@ local knownParams = {
{ DynamicList,
"tls_cipher",
{
- "DHE-RSA-AES256-SHA",
- "DHE-DSS-AES256-SHA",
- "AES256-SHA",
- "EDH-RSA-DES-CBC3-SHA",
- "EDH-DSS-DES-CBC3-SHA",
- "DES-CBC3-SHA",
- "DHE-RSA-AES128-SHA",
- "DHE-DSS-AES128-SHA",
- "AES128-SHA",
- "RC4-SHA",
- "RC4-MD5",
- "EDH-RSA-DES-CBC-SHA",
- "EDH-DSS-DES-CBC-SHA",
- "DES-CBC-SHA",
- "EXP-EDH-RSA-DES-CBC-SHA",
- "EXP-EDH-DSS-DES-CBC-SHA",
- "EXP-DES-CBC-SHA",
- "EXP-RC2-CBC-MD5",
- "EXP-RC4-MD5"
+ "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
+ "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
+ "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
+ "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256",
+ "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
+ "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
+ "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
+ "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
+ "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
+ "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
+ "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
+ "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
+ "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
+ "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
+ "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
+ "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
+ "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
+ "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
+ "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
+ "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
+ "TLS-DHE-RSA-WITH-AES-128-CBC-SHA"
},
translate("TLS cipher") },
{ DynamicList,
@@ -798,6 +800,7 @@ local knownParams = {
local cts = { }
local params = { }
+local title = ""
local m = Map("openvpn")
m.redirect = luci.dispatcher.build_url("admin", "vpn", "openvpn")
@@ -807,22 +810,23 @@ local p = m:section( SimpleSection )
p.template = "openvpn/pageswitch"
p.mode = "advanced"
p.instance = arg[1]
-p.category = arg[2] or "Service"
+p.category = arg[2] or knownParams[1][1]
for _, c in ipairs(knownParams) do
- cts[#cts+1] = c[1]
- if c[1] == p.category then params = c[2] end
+ cts[#cts+1] = { id = c[1], title = c[2] }
+ if c[1] == p.category then
+ title = c[2]
+ params = c[3]
+ end
end
p.categories = cts
local s = m:section(
- NamedSection, arg[1], "openvpn",
- translate("%s" % arg[2])
+ NamedSection, arg[1], "openvpn", title
)
-s.title = translate("%s" % arg[2])
s.addremove = false
s.anonymous = true
@@ -839,6 +843,8 @@ for _, option in ipairs(params) do
o.value = option[3]
elseif option[1] == FileUpload then
+ o.initial_directory = "/etc/openvpn"
+
function o.cfgvalue(self, section)
local cfg_val = AbstractValue.cfgvalue(self, section)
@@ -863,7 +869,7 @@ for _, option in ipairs(params) do
function o.remove(self, section)
local cfg_val = AbstractValue.cfgvalue(self, section)
local txt_val = luci.http.formvalue("cbid."..self.map.config.."."..section.."."..self.option..".textbox")
-
+
if cfg_val and fs.access(cfg_val) and txt_val == "" then
fs.unlink(cfg_val)
end
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
index 54f082a1fa..980238cb67 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn-basic.lua
@@ -58,7 +58,7 @@ local basicParams = {
{ DynamicList,
"remote",
"vpnserver.example.org",
- translate("Remote host name or ip address") },
+ translate("Remote host name or IP address") },
{ FileUpload,
"secret",
"/etc/openvpn/secret.key",
@@ -78,7 +78,7 @@ local basicParams = {
{ FileUpload,
"dh",
"/etc/easy-rsa/keys/dh1024.pem",
- translate("Diffie Hellman parameters") },
+ translate("Diffie-Hellman parameters") },
{ FileUpload,
"cert",
"/etc/easy-rsa/keys/some-client.crt",
@@ -128,6 +128,8 @@ for _, option in ipairs(basicParams) do
o.value = option[3]
elseif option[1] == FileUpload then
+ o.initial_directory = "/etc/openvpn"
+
function o.cfgvalue(self, section)
local cfg_val = AbstractValue.cfgvalue(self, section)
diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
index 9164f7f600..bf8e26afe6 100644
--- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
+++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua
@@ -159,9 +159,9 @@ function proto.cfgvalue(self, section)
if not val then
local file_cfg = self.map:get(section, "config")
if file_cfg and fs.access(file_cfg) then
- val = sys.exec("awk '{if(match(tolower($1),/^proto$/)&&match(tolower($2),/^udp[46]*$|^tcp[46]*-server$|^tcp[46]*-client$/)){cnt++;printf tolower($2);exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+ val = sys.exec("awk '{if(match(tolower($1),/^proto$/)&&match(tolower($2),/^udp[46]*$|^tcp[a-z46-]*$/)){cnt++;print tolower(substr($2,1,3));exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
if val == "-" then
- val = sys.exec("awk '{if(match(tolower($1),/^remote$/)&&match(tolower($4),/^udp[46]*$|^tcp[46]*-server$|^tcp[46]*-client$/)){cnt++;printf $4;exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
+ val = sys.exec("awk '{if(match(tolower($1),/^remote$/)&&match(tolower($4),/^udp[46]*$|^tcp[a-z46-]*$/)){cnt++;print tolower(substr($4,1,3));exit}}END{if(cnt==0)printf \"-\"}' " ..file_cfg)
end
end
end
diff --git a/applications/luci-app-openvpn/luasrc/view/openvpn/cbi-select-input-add.htm b/applications/luci-app-openvpn/luasrc/view/openvpn/cbi-select-input-add.htm
index 3e83df20a2..60f9e8e288 100644
--- a/applications/luci-app-openvpn/luasrc/view/openvpn/cbi-select-input-add.htm
+++ b/applications/luci-app-openvpn/luasrc/view/openvpn/cbi-select-input-add.htm
@@ -3,7 +3,7 @@
//<![CDATA[
function vpn_add()
{
- var vpn_name = div_add.querySelector("#instance_name1").value.replace(/[^\x00-\x7F]|[\s!@#$%^&*()\-+=\[\]{};':"\\|,<>\/?]/g,'');
+ var vpn_name = div_add.querySelector("#instance_name1").value.replace(/[^\x00-\x7F]|[\s\.!@#$%^&*()\-+=\[\]{};':"\\|,<>\/?]/g,'');
var vpn_template = div_add.querySelector("#instance_template").value;
var form = document.getElementsByName('cbi')[0];
@@ -31,7 +31,7 @@
function vpn_upload()
{
- var vpn_name = div_upload.querySelector("#instance_name2").value.replace(/[^\x00-\x7F]|[\s!@#$%^&*()\-+=\[\]{};':"\\|,<>\/?]/g,'');
+ var vpn_name = div_upload.querySelector("#instance_name2").value.replace(/[^\x00-\x7F]|[\s\.!@#$%^&*()\-+=\[\]{};':"\\|,<>\/?]/g,'');
var vpn_file = document.getElementById("ovpn_file").value;
var form = document.getElementsByName('cbi')[0];
@@ -84,12 +84,12 @@
<select id="instance_template" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.select">
<option value="" selected="selected" disabled="disabled"><%:Select template ...%></option>
<%- for k, v in luci.util.kspairs(self.add_select_options) do %>
- <option value="<%=k%>"><%=luci.util.pcdata(v)%></option>
+ <option value="<%=k%>"><%=luci.xml.pcdata(v)%></option>
<% end -%>
</select>
</div>
<div class="td left">
- <input class="cbi-button cbi-button-add" type="submit" onclick="vpn_add(); return false;" value="<%:Add%>" title="<%:Add template based configuration%>" /><br />
+ <input class="btn cbi-button cbi-button-add" type="submit" onclick="vpn_add(); return false;" value="<%:Add%>" title="<%:Add template based configuration%>" /><br />
</div>
</div>
<h4><%:OVPN configuration file upload%></h4>
@@ -101,7 +101,7 @@
<input type="file" name="ovpn_file" id="ovpn_file" accept="application/x-openvpn-profile,.ovpn" />
</div>
<div class="td left">
- <input class="cbi-button cbi-button-add" type="submit" onclick="vpn_upload(); return false;" value="<%:Upload%>" title="<%:Upload ovpn file%>" />
+ <input class="btn cbi-button cbi-button-add" type="submit" onclick="vpn_upload(); return false;" value="<%:Upload%>" title="<%:Upload ovpn file%>" />
</div>
</div>
</div>
diff --git a/applications/luci-app-openvpn/luasrc/view/openvpn/pageswitch.htm b/applications/luci-app-openvpn/luasrc/view/openvpn/pageswitch.htm
index 7d88b844ab..0792763085 100644
--- a/applications/luci-app-openvpn/luasrc/view/openvpn/pageswitch.htm
+++ b/applications/luci-app-openvpn/luasrc/view/openvpn/pageswitch.htm
@@ -12,17 +12,17 @@
<%=luci.i18n.translatef("Instance \"%s\"", self.instance)%>
</h3>
<% if self.mode == "basic" then %>
- <a href="<%=url('admin/vpn/openvpn/advanced', self.instance, "Service")%>"><%:Switch to advanced configuration%> &#187;</a><p/>
+ <a href="<%=url('admin/vpn/openvpn/advanced', self.instance)%>"><%:Switch to advanced configuration%> &#187;</a><p/>
<hr />
<% elseif self.mode == "advanced" then %>
<a href="<%=url('admin/vpn/openvpn/basic', self.instance)%>"><%:Switch to basic configuration%> &#187;</a><p/>
<hr />
<%:Configuration category%>:
<% for i, c in ipairs(self.categories) do %>
- <% if c == self.category then %>
- <strong><%=translate(c)%></strong>
+ <% if c.id == self.category then %>
+ <strong><%=c.title%></strong>
<% else %>
- <a href="<%=luci.dispatcher.build_url("admin", "vpn", "openvpn", "advanced", self.instance, c)%>"><%=translate(c)%></a>
+ <a href="<%=luci.dispatcher.build_url("admin", "vpn", "openvpn", "advanced", self.instance, c.id)%>"><%=c.title%></a>
<% end %>
<% if next(self.categories, i) then %>|<% end %>
<% end %>