X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fwifi.lua;h=f5d6cf476b6caecc4302a062fe16b923c22a0563;hp=a6be2fabd164fac4082d13f043c7c1434e5f94b6;hb=017d24c7241ba2393498b3ceb637cb0883c9e114;hpb=aa3caed0b5ba4218c8665747cdd70b5fbd476d94 diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua index a6be2fabd..f5d6cf476 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua @@ -25,6 +25,7 @@ m = Map("wireless", "", "like encryption or operation mode are grouped in the Interface Configuration.")) m:chain("network") +m:chain("firewall") local ifsection @@ -47,6 +48,25 @@ if not wnet or not wdev then return end +-- wireless toggle was requested, commit and reload page +function m.parse(map) + if m:formvalue("cbid.wireless.%s.__toggle" % wdev:name()) then + if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then + wnet:set("disabled", nil) + else + wnet:set("disabled", "1") + end + wdev:set("disabled", nil) + + nw:commit("wireless") + luci.sys.call("(env -i /sbin/wifi down; env -i /sbin/wifi up) >/dev/null 2>/dev/null") + + luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless", arg[1])) + return + end + Map.parse(map) +end + m.title = luci.util.pcdata(wnet:get_i18n()) @@ -75,13 +95,16 @@ st = s:taboption("general", DummyValue, "__status", translate("Status")) st.template = "admin_network/wifi_status" st.ifname = arg[1] -en = s:taboption("general", Flag, "disabled", translate("Enable device")) -en.enabled = "0" -en.disabled = "1" -en.rmempty = false +en = s:taboption("general", Button, "__toggle") -function en.cfgvalue(self, section) - return Flag.cfgvalue(self, section) or "0" +if wdev:get("disabled") == "1" or wnet:get("disabled") == "1" then + en.title = translate("Wireless network is disabled") + en.inputtitle = translate("Enable") + en.inputstyle = "apply" +else + en.title = translate("Wireless network is enabled") + en.inputtitle = translate("Disable") + en.inputstyle = "reset" end @@ -135,16 +158,6 @@ if hwtype == "mac80211" then --htcapab:depends("hwmode", "11ng") end - mp = s:taboption("macfilter", ListValue, "macfilter", translate("MAC-Address Filter")) - mp:value("", translate("disable")) - mp:value("allow", translate("Allow listed only")) - mp:value("deny", translate("Allow all except listed")) - - ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List")) - ml.datatype = "macaddr" - ml:depends({macfilter="allow"}) - ml:depends({macfilter="deny"}) - local cl = iw and iw.countrylist if cl and #cl > 0 then cc = s:taboption("advanced", ListValue, "country", translate("Country Code"), translate("Use ISO/IEC 3166 alpha2 country codes.")) @@ -158,6 +171,9 @@ if hwtype == "mac80211" then s:taboption("advanced", Value, "distance", translate("Distance Optimization"), translate("Distance to farthest network member in meters.")) + + s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold")) + s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold")) end @@ -241,16 +257,6 @@ if hwtype == "broadcom" then mode:value("11g", "802.11g") mode:value("11gst", "802.11g + Turbo") - mp = s:taboption("macfilter", ListValue, "macfilter", translate("MAC-Address Filter")) - mp:value("", translate("disable")) - mp:value("allow", translate("Allow listed only")) - mp:value("deny", translate("Allow all except listed")) - - ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List")) - ml.datatype = "macaddr" - ml:depends({macfilter="allow"}) - ml:depends({macfilter="deny"}) - ant1 = s:taboption("advanced", ListValue, "txantenna", translate("Transmitter Antenna")) ant1.widget = "radio" ant1:depends("diversity", "") @@ -352,8 +358,17 @@ if hwtype == "mac80211" then mode:value("monitor", translate("Monitor")) bssid:depends({mode="adhoc"}) - s:taboption("advanced", Value, "frag", translate("Fragmentation Threshold")) - s:taboption("advanced", Value, "rts", translate("RTS/CTS Threshold")) + mp = s:taboption("macfilter", ListValue, "macfilter", translate("MAC-Address Filter")) + mp:depends({mode="ap"}) + mp:depends({mode="ap-wds"}) + mp:value("", translate("disable")) + mp:value("allow", translate("Allow listed only")) + mp:value("deny", translate("Allow all except listed")) + + ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List")) + ml.datatype = "macaddr" + ml:depends({macfilter="allow"}) + ml:depends({macfilter="deny"}) mode:value("ap-wds", "%s (%s)" % {translate("Access Point"), translate("WDS")}) mode:value("sta-wds", "%s (%s)" % {translate("Client"), translate("WDS")}) @@ -446,8 +461,8 @@ if hwtype == "atheros" then mp = s:taboption("macfilter", ListValue, "macpolicy", translate("MAC-Address Filter")) mp:value("", translate("disable")) - mp:value("deny", translate("Allow listed only")) - mp:value("allow", translate("Allow all except listed")) + mp:value("allow", translate("Allow listed only")) + mp:value("deny", translate("Allow all except listed")) ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List")) ml.datatype = "macaddr" @@ -521,8 +536,8 @@ if hwtype == "prism2" then mp = s:taboption("macfilter", ListValue, "macpolicy", translate("MAC-Address Filter")) mp:value("", translate("disable")) - mp:value("deny", translate("Allow listed only")) - mp:value("allow", translate("Allow all except listed")) + mp:value("allow", translate("Allow listed only")) + mp:value("deny", translate("Allow all except listed")) ml = s:taboption("macfilter", DynamicList, "maclist", translate("MAC-List")) ml:depends({macpolicy="allow"}) ml:depends({macpolicy="deny"}) @@ -546,6 +561,14 @@ encr:depends({mode="ap-wds"}) encr:depends({mode="sta-wds"}) encr:depends({mode="mesh"}) +function encr.write(self, section, value) + if value == "wpa" or value == "wpa2" then + self.map.uci:delete("wireless", section, "key") + end + self.map.uci:set("wireless", section, "encryption", value) +end + + encr:value("none", "No Encryption") encr:value("wep-open", translate("WEP Open System"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) encr:value("wep-shared", translate("WEP Shared Key"), {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"}) @@ -592,35 +615,59 @@ elseif hwtype == "broadcom" then encr:value("psk+psk2", "WPA-PSK/WPA2-PSK Mixed Mode") end -encr:depends("mode", "ap") -encr:depends("mode", "sta") -encr:depends("mode", "ap-wds") -encr:depends("mode", "sta-wds") -encr:depends("mode", "wds") - -server = s:taboption("encryption", Value, "server", translate("Radius-Server")) -server:depends({mode="ap", encryption="wpa"}) -server:depends({mode="ap", encryption="wpa2"}) -server:depends({mode="ap-wds", encryption="wpa"}) -server:depends({mode="ap-wds", encryption="wpa2"}) -server.rmempty = true - -port = s:taboption("encryption", Value, "port", translate("Radius-Port")) -port:depends({mode="ap", encryption="wpa"}) -port:depends({mode="ap", encryption="wpa2"}) -port:depends({mode="ap-wds", encryption="wpa"}) -port:depends({mode="ap-wds", encryption="wpa2"}) -port.rmempty = true +auth_server = s:taboption("encryption", Value, "auth_server", translate("Radius-Authentication-Server")) +auth_server:depends({mode="ap", encryption="wpa"}) +auth_server:depends({mode="ap", encryption="wpa2"}) +auth_server:depends({mode="ap-wds", encryption="wpa"}) +auth_server:depends({mode="ap-wds", encryption="wpa2"}) +auth_server.rmempty = true +auth_server.datatype = "host" + +auth_port = s:taboption("encryption", Value, "auth_port", translate("Radius-Authentication-Port"), translatef("Default %d", 1812)) +auth_port:depends({mode="ap", encryption="wpa"}) +auth_port:depends({mode="ap", encryption="wpa2"}) +auth_port:depends({mode="ap-wds", encryption="wpa"}) +auth_port:depends({mode="ap-wds", encryption="wpa2"}) +auth_port.rmempty = true +auth_port.datatype = "port" + +auth_secret = s:taboption("encryption", Value, "auth_secret", translate("Radius-Authentication-Secret")) +auth_secret:depends({mode="ap", encryption="wpa"}) +auth_secret:depends({mode="ap", encryption="wpa2"}) +auth_secret:depends({mode="ap-wds", encryption="wpa"}) +auth_secret:depends({mode="ap-wds", encryption="wpa2"}) +auth_secret.rmempty = true +auth_secret.password = true + +acct_server = s:taboption("encryption", Value, "acct_server", translate("Radius-Accounting-Server")) +acct_server:depends({mode="ap", encryption="wpa"}) +acct_server:depends({mode="ap", encryption="wpa2"}) +acct_server:depends({mode="ap-wds", encryption="wpa"}) +acct_server:depends({mode="ap-wds", encryption="wpa2"}) +acct_server.rmempty = true +acct_server.datatype = "host" + +acct_port = s:taboption("encryption", Value, "acct_port", translate("Radius-Accounting-Port"), translatef("Default %d", 1813)) +acct_port:depends({mode="ap", encryption="wpa"}) +acct_port:depends({mode="ap", encryption="wpa2"}) +acct_port:depends({mode="ap-wds", encryption="wpa"}) +acct_port:depends({mode="ap-wds", encryption="wpa2"}) +acct_port.rmempty = true +acct_port.datatype = "port" + +acct_secret = s:taboption("encryption", Value, "acct_secret", translate("Radius-Accounting-Secret")) +acct_secret:depends({mode="ap", encryption="wpa"}) +acct_secret:depends({mode="ap", encryption="wpa2"}) +acct_secret:depends({mode="ap-wds", encryption="wpa"}) +acct_secret:depends({mode="ap-wds", encryption="wpa2"}) +acct_secret.rmempty = true +acct_secret.password = true wpakey = s:taboption("encryption", Value, "_wpa_key", translate("Key")) wpakey:depends("encryption", "psk") wpakey:depends("encryption", "psk2") wpakey:depends("encryption", "psk+psk2") wpakey:depends("encryption", "psk-mixed") -wpakey:depends({mode="ap", encryption="wpa"}) -wpakey:depends({mode="ap", encryption="wpa2"}) -wpakey:depends({mode="ap-wds", encryption="wpa"}) -wpakey:depends({mode="ap-wds", encryption="wpa2"}) wpakey.datatype = "wpakey" wpakey.rmempty = true wpakey.password = true