diff options
author | Dirk Brenken <dev@brenken.org> | 2020-09-19 00:01:07 +0200 |
---|---|---|
committer | Dirk Brenken <dev@brenken.org> | 2020-09-19 00:01:07 +0200 |
commit | e3b357ac0eb2b3942fd3c948fce9cecbf0ed30cc (patch) | |
tree | 35b0de93f3f0e9edcf43d7639f3f304c79895c98 /applications/luci-app-travelmate/luasrc/model/cbi/travelmate | |
parent | 45c914a016499f297a754f00b48c5d782cbc2124 (diff) |
luci-app-travelmate: release 2.0
- sync with travelmate 2.0
- app migrated to client side JS
Signed-off-by: Dirk Brenken <dev@brenken.org>
Diffstat (limited to 'applications/luci-app-travelmate/luasrc/model/cbi/travelmate')
9 files changed, 0 insertions, 802 deletions
diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua deleted file mode 100644 index 8597912b20..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_firewall_tab.lua +++ /dev/null @@ -1,41 +0,0 @@ --- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local util = require("luci.util") -local input = "/etc/config/firewall" - -if not fs.access(input) then - m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) - return m -end - -m = SimpleForm("input", nil) -m:append(Template("travelmate/travelmate_css")) -m.submit = translate("Save") -m.reset = false - -s = m:section(SimpleSection, nil, - translate("This form allows you to modify the content of the main firewall configuration file (/etc/config/firewall).")) - -f = s:option(TextValue, "data") -f.rows = 20 -f.rmempty = true - -function f.cfgvalue() - return fs.readfile(input) or "" -end - -function f.write(self, section, data) - return fs.writefile(input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") -end - -function f.remove(self, section, value) - return fs.writefile(input, "") -end - -function s.handle(self, state, data) - return true -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua deleted file mode 100644 index 36a32aefe8..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_network_tab.lua +++ /dev/null @@ -1,41 +0,0 @@ --- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local util = require("luci.util") -local input = "/etc/config/network" - -if not fs.access(input) then - m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) - return m -end - -m = SimpleForm("input", nil) -m:append(Template("travelmate/travelmate_css")) -m.submit = translate("Save") -m.reset = false - -s = m:section(SimpleSection, nil, - translate("This form allows you to modify the content of the main network configuration file (/etc/config/network).")) - -f = s:option(TextValue, "data") -f.rows = 20 -f.rmempty = true - -function f.cfgvalue() - return fs.readfile(input) or "" -end - -function f.write(self, section, data) - return fs.writefile(input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") -end - -function f.remove(self, section, value) - return fs.writefile(input, "") -end - -function s.handle(self, state, data) - return true -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua deleted file mode 100644 index bb6205b9b3..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/cfg_wireless_tab.lua +++ /dev/null @@ -1,41 +0,0 @@ --- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local util = require("luci.util") -local input = "/etc/config/wireless" - -if not fs.access(input) then - m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) - return m -end - -m = SimpleForm("input", nil) -m:append(Template("travelmate/travelmate_css")) -m.submit = translate("Save") -m.reset = false - -s = m:section(SimpleSection, nil, - translate("This form allows you to modify the content of the main wireless configuration file (/etc/config/wireless).")) - -f = s:option(TextValue, "data") -f.rows = 20 -f.rmempty = true - -function f.cfgvalue() - return fs.readfile(input) or "" -end - -function f.write(self, section, data) - return fs.writefile(input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") -end - -function f.remove(self, section, value) - return fs.writefile(input, "") -end - -function s.handle(self, state, data) - return true -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua deleted file mode 100644 index c9cc587edd..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/configuration_tab.lua +++ /dev/null @@ -1,43 +0,0 @@ --- Copyright 2017-2018 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local util = require("luci.util") -local input = "/etc/config/travelmate" - -if not fs.access(input) then - m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) - m.reset = false - m.submit = false - return m -end - -m = SimpleForm("input", nil) -m:append(Template("travelmate/travelmate_css")) -m.submit = translate("Save") -m.reset = false - -s = m:section(SimpleSection, nil, - translate("This form allows you to modify the content of the main travelmate configuration file (/etc/config/travelmate).")) - -f = s:option(TextValue, "data") -f.rows = 20 -f.rmempty = true - -function f.cfgvalue() - return fs.readfile(input) or "" -end - -function f.write(self, section, data) - return fs.writefile(input, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") -end - -function f.remove(self, section, value) - return fs.writefile(input, "") -end - -function s.handle(self, state, data) - return true -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua deleted file mode 100644 index cc38bd97e1..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/overview_tab.lua +++ /dev/null @@ -1,153 +0,0 @@ --- Copyright 2017-2019 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local uci = require("luci.model.uci").cursor() -local util = require("luci.util") -local nw = require("luci.model.network").init() -local fw = require("luci.model.firewall").init() -local dump = util.ubus("network.interface", "dump", {}) -local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" -local uplink = uci:get("network", trmiface) or "" - -m = Map("travelmate", translate("Travelmate"), - translate("Configuration of the travelmate package to to enable travel router functionality. ") - .. translatef("For further information " - .. "<a href=\"%s\" target=\"_blank\">" - .. "see online documentation</a>", "https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md")) -m:chain("network") -m:chain("firewall") - --- Interface Wizard - -if uplink == "" then - ds = m:section(NamedSection, "global", "travelmate", translate("Interface Wizard")) - o = ds:option(Value, "trm_iface", translate("Create Uplink interface"), - translate("Create a new wireless wan uplink interface, configure it to use dhcp and ") - .. translate("add it to the wan zone of the firewall. ") - .. translate("This step has only to be done once.")) - o.datatype = "and(uciname,rangelength(3,15))" - o.default = trmiface - o.rmempty = false - - function o.validate(self, value) - if value then - local nwnet = nw:get_network(value) - local zone = fw:get_zone("wan") - local fwnet = fw:get_zone_by_network(value) - if not nwnet then - nwnet = nw:add_network(value, { proto = "dhcp" }) - end - if zone and not fwnet then - fwnet = zone:add_network(value) - end - end - return value - end - return m -end - --- Main travelmate options - -s = m:section(NamedSection, "global", "travelmate") - -o1 = s:option(Flag, "trm_enabled", translate("Enable Travelmate")) -o1.default = o1.disabled -o1.rmempty = false - -o2 = s:option(Flag, "trm_captive", translate("Captive Portal Detection"), - translate("Check the internet availability, log captive portal redirections and keep the uplink connection 'alive'.")) -o2.default = o2.enabled -o2.rmempty = false - -o3 = s:option(Flag, "trm_netcheck", translate("Net Error Check"), - translate("Treat missing internet availability as an error.")) -o3:depends("trm_captive", 1) -o3.default = o3.disabled -o3.rmempty = false - -o4 = s:option(Flag, "trm_proactive", translate("ProActive Uplink Switch"), - translate("Proactively scan and switch to a higher prioritized uplink, despite of an already existing connection.")) -o4.default = o4.enabled -o4.rmempty = false - -o5 = s:option(Flag, "trm_autoadd", translate("Add Open Uplinks"), - translate("Automatically add open uplinks like hotel captive portals to your wireless config.")) -o5.default = o5.disabled -o5.rmempty = false - -o6 = s:option(ListValue, "trm_iface", translate("Uplink / Trigger interface"), - translate("Name of the used uplink interface.")) -if dump then - local i, v - for i, v in ipairs(dump.interface) do - if v.interface ~= "loopback" and v.interface ~= "lan" then - local device = v.l3_device or v.device or "-" - o6:value(v.interface, v.interface.. " (" ..device.. ")") - end - end -end -o6.default = trmiface -o6.rmempty = false - --- Runtime information - -ds = s:option(DummyValue, "_dummy") -ds.template = "travelmate/runtime" - --- Extra options - -e = m:section(NamedSection, "global", "travelmate", translate("Extra Options"), -translate("Options for further tweaking in case the defaults are not suitable for you.")) - -e1 = e:option(Flag, "trm_debug", translate("Enable Verbose Debug Logging")) -e1.default = e1.disabled -e1.rmempty = false - -e2 = e:option(Value, "trm_radio", translate("Radio Selection / Order"), - translate("Restrict travelmate to a single radio (e.g. 'radio1') or change the overall scanning order (e.g. 'radio1 radio2 radio0').")) -e2.rmempty = true - -e3 = e:option(Value, "trm_listexpiry", translate("List Auto Expiry"), - translate("Automatically resets the 'Faulty Stations' list after n minutes. Default is '0' which means no expiry.")) -e3.datatype = "range(0,300)" -e3.default = 0 -e3.rmempty = false - -e4 = e:option(Value, "trm_triggerdelay", translate("Trigger Delay"), - translate("Additional trigger delay in seconds before travelmate processing begins.")) -e4.datatype = "range(1,60)" -e4.default = 2 -e4.rmempty = false - -e5 = e:option(Value, "trm_maxretry", translate("Connection Limit"), - translate("Retry limit to connect to an uplink.")) -e5.default = 5 -e5.datatype = "range(1,10)" -e5.rmempty = false - -e6 = e:option(Value, "trm_minquality", translate("Signal Quality Threshold"), - translate("Minimum signal quality threshold as percent for conditional uplink (dis-) connections.")) -e6.default = 35 -e6.datatype = "range(20,80)" -e6.rmempty = false - -e7 = e:option(Value, "trm_maxwait", translate("Interface Timeout"), - translate("How long should travelmate wait for a successful wlan uplink connection.")) -e7.default = 30 -e7.datatype = "range(20,40)" -e7.rmempty = false - -e8 = e:option(Value, "trm_timeout", translate("Overall Timeout"), - translate("Overall retry timeout in seconds.")) -e8.default = 60 -e8.datatype = "range(30,300)" -e8.rmempty = false - -e10 = e:option(Value, "trm_scanbuffer", translate("Scan Buffer Size"), - translate("Buffer size in bytes to prepare nearby scan results.")) -e10.default = 1024 -e10.datatype = "range(512,4096)" -e10.optional = true - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua deleted file mode 100644 index 03c4f5bda2..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_add.lua +++ /dev/null @@ -1,226 +0,0 @@ --- Copyright 2017-2019 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local uci = require("luci.model.uci").cursor() -local http = require("luci.http") -local util = require("luci.util") -local scripts = util.split(util.trim(util.exec("ls /etc/travelmate/*.login 2>/dev/null")), "\n", nil, true) or {} -local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" -local encr_psk = {"psk", "psk2", "psk-mixed", "sae", "owe", "sae-mixed"} -local encr_wpa = {"wpa", "wpa2", "wpa-mixed"} - -m = SimpleForm("add", translate("Add Wireless Uplink Configuration")) -m.submit = translate("Save") -m.cancel = translate("Back to overview") -m.reset = false - -function m.on_cancel() - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) -end - -m.hidden = { - device = http.formvalue("device"), - ssid = http.formvalue("ssid"), - bssid = http.formvalue("bssid"), - description = http.formvalue("description"), - wep = tonumber(http.formvalue("wep")) or 0, - wpa_suites = http.formvalue("wpa_suites"), - wpa_version = tonumber(http.formvalue("wpa_version")) or 0 -} - -if m.hidden.wpa_version == 4 then - if string.find(m.hidden.description, "OWE") then - m.hidden.wpa_version = 5 - end -end - -if m.hidden.ssid == "" then - wssid = m:field(Value, "ssid", translate("SSID (hidden)")) -else - wssid = m:field(Value, "ssid", translate("SSID")) -end -wssid.datatype = "rangelength(1,32)" -wssid.default = m.hidden.ssid or "" - -nobssid = m:field(Flag, "no_bssid", translate("Ignore BSSID")) -if m.hidden.ssid == "" then - nobssid.default = nobssid.disabled -else - nobssid.default = nobssid.enabled -end - -bssid = m:field(Value, "bssid", translate("BSSID"), - translatef("The BSSID information '%s' is optional and only required for hidden networks", m.hidden.bssid or "")) -bssid:depends("no_bssid", 0) -bssid.datatype = "macaddr" -bssid.default = m.hidden.bssid or "" - -if m.hidden.wep == 1 then - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("wep", "WEP") - encr:value("wep+open", "WEP Open System") - encr:value("wep+mixed", "WEP mixed") - encr:value("wep+shared", "WEP Shared Key") - encr.default = "wep+open" - - wkey = m:field(Value, "key", translate("WEP-Passphrase")) - wkey.password = true - wkey.datatype = "wepkey" -elseif m.hidden.wpa_version > 0 then - if m.hidden.wpa_suites == "802.1X" then - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("wpa", "WPA Enterprise") - encr:value("wpa-mixed", "WPA/WPA2 Enterprise mixed") - encr:value("wpa2", "WPA2 Enterprise") - encr.default = encr_wpa[m.hidden.wpa_version] or "wpa2" - - ciph = m:field(ListValue, "cipher", translate("Cipher")) - ciph:value("auto", translate("Automatic")) - ciph:value("ccmp", translate("Force CCMP (AES)")) - ciph:value("tkip", translate("Force TKIP")) - ciph:value("tkip+ccmp", translate("Force TKIP and CCMP (AES)")) - ciph.default = "auto" - - eaptype = m:field(ListValue, "eap_type", translate("EAP-Method")) - eaptype:value("tls", "TLS") - eaptype:value("ttls", "TTLS") - eaptype:value("peap", "PEAP") - eaptype:value("fast", "FAST") - eaptype.default = "peap" - - authentication = m:field(ListValue, "auth", translate("Authentication")) - authentication:value("PAP") - authentication:value("CHAP") - authentication:value("MSCHAP") - authentication:value("MSCHAPV2") - authentication:value("EAP-GTC") - authentication:value("EAP-MD5") - authentication:value("EAP-MSCHAPV2") - authentication:value("EAP-TLS") - authentication:value("auth=PAP") - authentication:value("auth=MSCHAPV2") - authentication.default = "EAP-MSCHAPV2" - - ident = m:field(Value, "identity", translate("Identity")) - - wkey = m:field(Value, "password", translate("Password")) - wkey.password = true - wkey.datatype = "wpakey" - - cacert = m:field(Value, "ca_cert", translate("Path to CA-Certificate")) - cacert.rmempty = true - - clientcert = m:field(Value, "client_cert", translate("Path to Client-Certificate")) - clientcert:depends("eap_type","tls") - clientcert.rmempty = true - - privkey = m:field(Value, "priv_key", translate("Path to Private Key")) - privkey:depends("eap_type","tls") - privkey.rmempty = true - - privkeypwd = m:field(Value, "priv_key_pwd", translate("Password of Private Key")) - privkeypwd:depends("eap_type","tls") - privkeypwd.datatype = "wpakey" - privkeypwd.password = true - privkeypwd.rmempty = true - else - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("psk", "WPA-PSK") - encr:value("psk2", "WPA2-PSK") - encr:value("psk-mixed", "WPA/WPA2 mixed") - encr:value("sae", "WPA3-SAE") - encr:value("owe", "OWE (open network)") - encr:value("sae-mixed", "WPA2/WPA3 mixed") - encr.default = encr_psk[m.hidden.wpa_version] or "psk2" - - ciph = m:field(ListValue, "cipher", translate("Cipher")) - ciph:value("auto", translate("Automatic")) - ciph:value("ccmp", translate("Force CCMP (AES)")) - ciph:value("tkip", translate("Force TKIP")) - ciph:value("tkip+ccmp", translate("Force TKIP and CCMP (AES)")) - ciph:depends("encryption", "psk") - ciph:depends("encryption", "psk2") - ciph:depends("encryption", "psk-mixed") - ciph.default = "auto" - - wkey = m:field(Value, "key", translate("WPA-Passphrase")) - wkey.password = true - wkey.datatype = "wpakey" - wkey:depends("encryption", "psk") - wkey:depends("encryption", "psk2") - wkey:depends("encryption", "psk-mixed") - wkey:depends("encryption", "sae") - wkey:depends("encryption", "sae-mixed") - end -end - -local login_section = (m.hidden.device or "") .. "_" .. (m.hidden.ssid or "") .. "_" .. (m.hidden.bssid or "") -login_section = login_section:gsub("[^%w_]", "_") -local cmd = uci:get("travelmate", login_section, "command") -local cmd_args_default = uci:get("travelmate", login_section, "command_args") -cmd_list = m:field(ListValue, "cmdlist", translate("Auto Login Script"), - translate("External script reference which will be called for automated captive portal logins.")) -cmd_args = m:field(Value, "cmdargs", translate("Optional Arguments"), - translate("Space separated list of additional arguments passed to the Auto Login Script, i.e. username and password")) -for _, z in ipairs(scripts) do - cmd_list:value(z) - cmd_args:depends("cmdlist", z) -end -cmd_list:value("none") -cmd_list.default = cmd or "none" -cmd_args.default = cmd_args_default - -function wssid.write(self, section, value) - login_section = (m.hidden.device or "") .. "_" .. (wssid:formvalue(section) or "") .. "_" .. (bssid:formvalue(section) or "") - login_section = login_section:gsub("[^%w_]", "_") - newsection = uci:section("wireless", "wifi-iface", login_section, { - mode = "sta", - network = trmiface, - device = m.hidden.device, - ssid = wssid:formvalue(section), - bssid = bssid:formvalue(section), - disabled = "1" - }) - - if encr then - if string.find(encr:formvalue(section), '^wep') then - uci:set("wireless", newsection, "encryption", encr:formvalue(section)) - uci:set("wireless", newsection, "key", wkey:formvalue(section) or "") - elseif string.find(encr:formvalue(section), '^wpa') then - uci:set("wireless", newsection, "eap_type", eaptype:formvalue(section)) - uci:set("wireless", newsection, "auth", authentication:formvalue(section)) - uci:set("wireless", newsection, "identity", ident:formvalue(section) or "") - uci:set("wireless", newsection, "password", wkey:formvalue(section) or "") - uci:set("wireless", newsection, "ca_cert", cacert:formvalue(section) or "") - uci:set("wireless", newsection, "client_cert", clientcert:formvalue(section) or "") - uci:set("wireless", newsection, "priv_key", privkey:formvalue(section) or "") - uci:set("wireless", newsection, "priv_key_pwd", privkeypwd:formvalue(section) or "") - elseif encr:formvalue(section) ~= "owe" then - uci:set("wireless", newsection, "key", wkey:formvalue(section) or "") - end - if ciph and ciph:formvalue(section) and ciph:formvalue(section) ~= "auto" then - uci:set("wireless", newsection, "encryption", encr:formvalue(section) .. "+" .. ciph:formvalue(section)) - else - uci:set("wireless", newsection, "encryption", encr:formvalue(section)) - end - else - uci:set("wireless", newsection, "encryption", "none") - end - - if not uci:get("travelmate", login_section) and cmd_list:formvalue(section) ~= "none" then - uci:set("travelmate", login_section, "login") - end - if uci:get("travelmate", login_section) then - uci:set("travelmate", login_section, "command", cmd_list:formvalue(section)) - uci:set("travelmate", login_section, "command_args", cmd_args:formvalue(section)) - uci:save("travelmate") - uci:commit("travelmate") - end - uci:save("wireless") - uci:commit("wireless") - luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua deleted file mode 100644 index 0a7678f7ed..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_delete.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Copyright 2017 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local uci = require("luci.model.uci").cursor() -local http = require("luci.http") -local cfg = http.formvalue("cfg") - -if cfg ~= nil then - uci:delete("wireless", cfg) - uci:save("wireless") - uci:commit("wireless") - luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") -end -http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua deleted file mode 100644 index 066dccacfd..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_edit.lua +++ /dev/null @@ -1,207 +0,0 @@ --- Copyright 2017-2019 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local fs = require("nixio.fs") -local uci = require("luci.model.uci").cursor() -local http = require("luci.http") -local util = require("luci.util") -local scripts = util.split(util.trim(util.exec("ls /etc/travelmate/*.login 2>/dev/null")), "\n", nil, true) or {} - -m = SimpleForm("edit", translate("Edit Wireless Uplink Configuration")) -m.submit = translate("Save") -m.cancel = translate("Back to overview") -m.reset = false - -function m.on_cancel() - http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) -end - -m.hidden = { - cfg = http.formvalue("cfg") -} - -local s = uci:get_all("wireless", m.hidden.cfg) - -if s ~= nil then - wssid = m:field(Value, "ssid", translate("SSID")) - wssid.datatype = "rangelength(1,32)" - wssid.default = s.ssid or "" - - bssid = m:field(Value, "bssid", translate("BSSID")) - bssid.datatype = "macaddr" - bssid.default = s.bssid or "" - - if string.match(s.encryption, '%+') and not string.match(s.encryption, '^wep') then - s.pos = string.find(s.encryption, '%+') - s.cipher = string.sub(s.encryption, s.pos + 1) - s.encryption = string.sub(s.encryption, 0, s.pos - 1) - end - - if s.encryption and s.encryption ~= "none" then - if string.match(s.encryption, '^wep') then - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("wep", "WEP") - encr:value("wep+open", "WEP Open System") - encr:value("wep+mixed", "WEP mixed") - encr:value("wep+shared", "WEP Shared Key") - encr.default = s.encryption - - wkey = m:field(Value, "key", translate("Passphrase")) - wkey.datatype = "wepkey" - wkey.password = true - wkey.default = s.key - elseif string.match(s.encryption, '^wpa') then - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("wpa", "WPA Enterprise") - encr:value("wpa-mixed", "WPA/WPA2 Enterprise mixed") - encr:value("wpa2", "WPA2 Enterprise") - encr.default = s.encryption - - ciph = m:field(ListValue, "cipher", translate("Cipher")) - ciph:value("auto", translate("Automatic")) - ciph:value("ccmp", translate("Force CCMP (AES)")) - ciph:value("tkip", translate("Force TKIP")) - ciph:value("tkip+ccmp", translate("Force TKIP and CCMP (AES)")) - ciph.default = s.cipher - - eaptype = m:field(ListValue, "eap_type", translate("EAP-Method")) - eaptype:value("tls", "TLS") - eaptype:value("ttls", "TTLS") - eaptype:value("peap", "PEAP") - eaptype:value("fast", "FAST") - eaptype.default = s.eap_type or "peap" - - authentication = m:field(ListValue, "auth", translate("Authentication")) - authentication:value("PAP") - authentication:value("CHAP") - authentication:value("MSCHAP") - authentication:value("MSCHAPV2") - authentication:value("EAP-GTC") - authentication:value("EAP-MD5") - authentication:value("EAP-MSCHAPV2") - authentication:value("EAP-TLS") - authentication:value("auth=PAP") - authentication:value("auth=MSCHAPV2") - authentication.default = s.auth or "EAP-MSCHAPV2" - - ident = m:field(Value, "identity", translate("Identity")) - ident.default = s.identity or "" - - wkey = m:field(Value, "password", translate("Passphrase")) - wkey.datatype = "wpakey" - wkey.password = true - wkey.default = s.password - - cacert = m:field(Value, "ca_cert", translate("Path to CA-Certificate")) - cacert.rmempty = true - cacert.default = s.ca_cert or "" - - clientcert = m:field(Value, "client_cert", translate("Path to Client-Certificate")) - clientcert:depends("eap_type","tls") - clientcert.rmempty = true - clientcert.default = s.client_cert or "" - - privkey = m:field(Value, "priv_key", translate("Path to Private Key")) - privkey:depends("eap_type","tls") - privkey.rmempty = true - privkey.default = s.priv_key or "" - - privkeypwd = m:field(Value, "priv_key_pwd", translate("Password of Private Key")) - privkeypwd:depends("eap_type","tls") - privkeypwd.datatype = "wpakey" - privkeypwd.password = true - privkeypwd.rmempty = true - privkeypwd.default = s.priv_key_pwd or "" - else - encr = m:field(ListValue, "encryption", translate("Encryption")) - encr:value("psk", "WPA-PSK") - encr:value("psk2", "WPA2-PSK") - encr:value("psk-mixed", "WPA/WPA2 mixed") - encr:value("sae", "WPA3-SAE") - encr:value("owe", "OWE (open network)") - encr:value("sae-mixed", "WPA2/WPA3 mixed") - encr.default = s.encryption - - ciph = m:field(ListValue, "cipher", translate("Cipher")) - ciph:value("auto", translate("Automatic")) - ciph:value("ccmp", translate("Force CCMP (AES)")) - ciph:value("tkip", translate("Force TKIP")) - ciph:value("tkip+ccmp", translate("Force TKIP and CCMP (AES)")) - ciph:depends("encryption", "psk") - ciph:depends("encryption", "psk2") - ciph:depends("encryption", "psk-mixed") - ciph.default = s.cipher or "auto" - - wkey = m:field(Value, "key", translate("Passphrase")) - wkey.datatype = "wpakey" - wkey.password = true - wkey:depends("encryption", "psk") - wkey:depends("encryption", "psk2") - wkey:depends("encryption", "psk-mixed") - wkey:depends("encryption", "sae") - wkey:depends("encryption", "sae-mixed") - wkey.default = s.key - end - end -else - m.on_cancel() -end - -local login_section = (s.device or "") .. "_" .. (s.ssid or "") .. "_" .. (s.bssid or "") -login_section = login_section:gsub("[^%w_]", "_") -local cmd = uci:get("travelmate", login_section, "command") -local cmd_args_default = uci:get("travelmate", login_section, "command_args") -cmd_list = m:field(ListValue, "cmdlist", translate("Auto Login Script"), - translate("External script reference which will be called for automated captive portal logins.")) -cmd_args = m:field(Value, "cmdargs", translate("Optional Arguments"), - translate("Space separated list of additional arguments passed to the Auto Login Script, i.e. username and password")) -for _, z in ipairs(scripts) do - cmd_list:value(z) - cmd_args:depends("cmdlist", z) -end -cmd_list:value("none") -cmd_list.default = cmd or "none" -cmd_args.default = cmd_args_default - -function wssid.write(self, section, value) - uci:set("wireless", m.hidden.cfg, "ssid", wssid:formvalue(section)) - uci:set("wireless", m.hidden.cfg, "bssid", bssid:formvalue(section)) - if encr then - if string.find(encr:formvalue(section), '^wep') then - uci:set("wireless", m.hidden.cfg, "encryption", encr:formvalue(section)) - uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section) or "") - elseif string.find(encr:formvalue(section), '^wpa') then - uci:set("wireless", m.hidden.cfg, "eap_type", eaptype:formvalue(section)) - uci:set("wireless", m.hidden.cfg, "auth", authentication:formvalue(section)) - uci:set("wireless", m.hidden.cfg, "identity", ident:formvalue(section) or "") - uci:set("wireless", m.hidden.cfg, "password", wkey:formvalue(section) or "") - uci:set("wireless", m.hidden.cfg, "ca_cert", cacert:formvalue(section) or "") - uci:set("wireless", m.hidden.cfg, "client_cert", clientcert:formvalue(section) or "") - uci:set("wireless", m.hidden.cfg, "priv_key", privkey:formvalue(section) or "") - uci:set("wireless", m.hidden.cfg, "priv_key_pwd", privkeypwd:formvalue(section) or "") - elseif encr:formvalue(section) ~= "owe" then - uci:set("wireless", m.hidden.cfg, "key", wkey:formvalue(section) or "") - end - if ciph and ciph:formvalue(section) and ciph:formvalue(section) ~= "auto" then - uci:set("wireless", m.hidden.cfg, "encryption", encr:formvalue(section) .. "+" .. ciph:formvalue(section)) - else - uci:set("wireless", m.hidden.cfg, "encryption", encr:formvalue(section)) - end - end - - if not uci:get("travelmate", login_section) and cmd_list:formvalue(section) ~= "none" then - uci:set("travelmate", login_section, "login") - end - if uci:get("travelmate", login_section) then - uci:set("travelmate", login_section, "command", cmd_list:formvalue(section)) - uci:set("travelmate", login_section, "command_args", cmd_args:formvalue(section)) - uci:save("travelmate") - uci:commit("travelmate") - end - uci:save("wireless") - uci:commit("wireless") - luci.sys.call("env -i /bin/ubus call network reload >/dev/null 2>&1") - m.on_cancel() -end - -return m diff --git a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua b/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua deleted file mode 100644 index 6eb4c72063..0000000000 --- a/applications/luci-app-travelmate/luasrc/model/cbi/travelmate/wifi_order.lua +++ /dev/null @@ -1,36 +0,0 @@ --- Copyright 2017 Dirk Brenken (dev@brenken.org) --- This is free software, licensed under the Apache License, Version 2.0 - -local http = require("luci.http") -local cfg = http.formvalue("cfg") -local dir = http.formvalue("dir") -local uci = require("luci.model.uci").cursor() -local trmiface = uci:get("travelmate", "global", "trm_iface") or "trm_wwan" - -if cfg ~= nil then - local section = "" - local idx = "" - local idx_change = "" - local changed = "" - uci:foreach("wireless", "wifi-iface", function(s) - local iface = s.network or "" - if iface == trmiface then - section = s['.name'] - if cfg == section then - idx = s['.index'] - else - idx_change = s['.index'] - end - if (dir == "up" and idx ~= "" and idx_change ~= "" and idx_change < idx) or - (dir == "down" and idx ~= "" and idx_change ~= "" and idx_change > idx) then - changed = uci:reorder("wireless", cfg, idx_change) - idx = "" - end - end - end) - if changed ~= "" then - uci:save("wireless") - uci:commit("wireless") - end -end -http.redirect(luci.dispatcher.build_url("admin/services/travelmate/stations")) |