Ticket #1228: auth.lua

File auth.lua, 3.5 KB (added by matthijs, 5 years ago)

Fixed auth.lua

Line 
1require("luci.tools.webadmin")
2
3local util = require "luci.util"
4local pdb = loadfile((os.getenv("LUCI_SYSROOT") or "") .. "/etc/3gsp.db.lua")()
5local c3166 = loadfile((os.getenv("LUCI_SYSROOT") or "") .. "/etc/3166en.db.lua")()
6
7local m = Map("umtsd",
8        translate("umts_title", "UMTS Settings"),
9        translate("umts_cred", "Please enter your UMTS/3G credentials"))
10m.events = {"UMTS"}
11s = m:section(NamedSection, "umtsd")
12
13local country = s:option(ListValue, "_country", translate("country"))
14local provider = s:option(ListValue, "_provider", translate("umts_provider"))
15country:value("_custom", translate("umts_custom"))
16
17local providers = {}
18
19for i, info in ipairs(c3166) do
20        local cc, cname, regdom = unpack(info)
21        cc = string.lower(cc)
22
23        local plist = pdb[cc]
24        if plist then
25                country:value(cc, cname)
26
27                for k, p in util.kspairs(plist) do
28                        local pk = cc .. "_" .. k
29                        provider:value(pk, p.name, {_country=cc})
30                        providers[pk] = p
31                end
32        end
33end
34
35for k in pairs(pdb) do
36        provider:depends({_country=k})
37end
38
39local apn = s:option(Value, "apn", translate("umts_apn", "APN"))
40apn:depends({_country="_custom"})
41
42function apn.formvalue(self, section)
43        local uservalue = Value.formvalue(self, section)
44
45        if not uservalue or #uservalue == 0 then
46                local p = providers[provider:formvalue(section)]
47                if p then
48                        uservalue = p and p.gsm and p.gsm[1]
49                end
50        end
51
52        return uservalue or ""
53end
54
55local pin = s:option(Value, "pin", translate("umts_pin", "PIN"))
56pin.override_scheme = true
57pin.rmempty = true
58pin.password = true
59
60local user = s:option(Value, "user", translate("umts_user", "Username"))
61user:depends({_country="_custom"})
62
63function user.formvalue(self, section)
64        local uservalue = Value.formvalue(self, section)
65
66        if not uservalue or #uservalue == 0 then
67                local p = providers[provider:formvalue(section)]
68                if p then
69                        uservalue = p and p.username
70                end
71        end
72
73        return uservalue or ""
74end
75
76local pass = s:option(Value, "pass", translate("umts_pass", "Password"))
77pass:depends({_country="_custom"})
78
79function pass.formvalue(self, section)
80        local uservalue = Value.formvalue(self, section)
81
82        if not uservalue or #uservalue == 0 then
83                local p = providers[provider:formvalue(section)]
84                if p then
85                        uservalue = p and p.password
86                end
87        end
88
89        return uservalue or ""
90end
91
92local dns = s:option(Value, "dns", translate("wan_dns", "DNS"))
93dns:depends({_country="_custom"})
94
95function dns.formvalue(self, section)
96        local uservalue = Value.formvalue(self, section)
97
98        if not uservalue or #uservalue == 0 then
99                local p = providers[provider:formvalue(section)]
100                if p then
101                        uservalue = p and p.dns
102                end
103        end
104
105        return uservalue or ""
106end
107
108local n = Map("fon", translate("umts_adv_title", "Advanced Settings"))
109s = n:section(NamedSection, "advanced")
110
111local override = s:option(ListValue, "umts_dns_override", translate("umts_dns_override", "Use default DNS"))
112override.override_values = true
113override:value("0", translate("disable", "disable"))
114override:value("1", translate("enable", "enable"))
115
116local net = s:option(ListValue, "umts_net", translate("umts_net", "Network"))
117net:value("0", translate("umts_gprs", "GPRS"))
118net:value("1", translate("umts_umts", "UMTS"))
119net:value("3", translate("umts_auto", "UMTS/GPRS"))
120net.default = "3"
121
122local spot = s:option(ListValue, "umts", translate("umts_hotspot", "Activate Hotspot"),
123        translate("umts_cost_warning", "This may produce extra cost"))
124spot.override_values = true
125spot.events = {"RestartChilli"}
126spot:value("1", translate("disable", "disable"))
127spot:value("0", translate("enable", "enable"))
128
129return m, n