From 09145378c87cc1b8bad52d211b77f836a6130a9f Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Thu, 14 Aug 2008 14:54:37 +0000 Subject: modules/admin-full: Added a cross-references from network interface config to firewall zone config --- .../luasrc/model/cbi/admin_network/ifaces.lua | 66 ++++++++++++---------- 1 file changed, 36 insertions(+), 30 deletions(-) (limited to 'modules') diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua index 6d1fb4f39..1a41ed271 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/ifaces.lua @@ -39,40 +39,46 @@ for i,d in ipairs(luci.sys.net.devices()) do end local zones = luci.tools.webadmin.network_get_zones(arg[1]) -if zones and #zones == 0 then - m:chain("firewall") - - fwzone = s:option(Value, "_fwzone", - translate("network_interface_fwzone"), - translate("network_interface_fwzone_desc")) - fwzone.rmempty = true - fwzone:value("", "- " .. translate("none") .. " -") - fwzone:value(arg[1]) - luci.model.uci.foreach("firewall", "zone", - function (section) - fwzone:value(section.name) - end - ) - - function fwzone.write(self, section, value) - local zone = luci.tools.webadmin.firewall_find_zone(value) - local stat +if zones then + if #zones == 0 then + m:chain("firewall") - if not zone then - stat = luci.model.uci.section("firewall", "zone", nil, { - name = value, - network = section - }) - else - local net = luci.model.uci.get("firewall", zone, "network") - net = (net or value) .. " " .. section - stat = luci.model.uci.set("firewall", zone, "network", net) - end + fwzone = s:option(Value, "_fwzone", + translate("network_interface_fwzone"), + translate("network_interface_fwzone_desc")) + fwzone.rmempty = true + fwzone:value("", "- " .. translate("none") .. " -") + fwzone:value(arg[1]) + luci.model.uci.foreach("firewall", "zone", + function (section) + fwzone:value(section.name) + end + ) - if stat then - self.render = function() end + function fwzone.write(self, section, value) + local zone = luci.tools.webadmin.firewall_find_zone(value) + local stat + + if not zone then + stat = luci.model.uci.section("firewall", "zone", nil, { + name = value, + network = section + }) + else + local net = luci.model.uci.get("firewall", zone, "network") + net = (net or value) .. " " .. section + stat = luci.model.uci.set("firewall", zone, "network", net) + end + + if stat then + self.render = function() end + end end + else + fwzone = s:option(DummyValue, "_fwzone", translate("zone")) + fwzone.value = table.concat(zones, ", ") end + fwzone.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "zones") end ipaddr = s:option(Value, "ipaddr", translate("ipaddress")) -- cgit v1.2.3