51 lines
1.7 KiB
Lua
51 lines
1.7 KiB
Lua
-- Copyright 2015 Daniel Dickinson <openwrt@daniel.thecshore.com>
|
|
-- Licensed to the public under the Apache License 2.0.
|
|
|
|
local fs = require("nixio.fs")
|
|
|
|
local m = Map("uhttpd", translate("Web Admin Settings"),
|
|
translate("Web Admin Settings Page"))
|
|
|
|
local ucs = m:section(TypedSection, "uhttpd")
|
|
ucs.addremove = false
|
|
ucs.anonymous = true
|
|
|
|
lhttp = ucs:option(DynamicList, "listen_http", translate("HTTP listeners (address:port)"), translate("Bind to specific interface:port (by specifying interface address"))
|
|
lhttp.datatype = "list(ipaddrport(1))"
|
|
|
|
function lhttp.validate(self, value, section)
|
|
local have_https_listener = false
|
|
local have_http_listener = false
|
|
if lhttp and lhttp:formvalue(section) and (#(lhttp:formvalue(section)) > 0) then
|
|
for k, v in pairs(lhttp:formvalue(section)) do
|
|
if v and (v ~= "") then
|
|
have_http_listener = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if lhttps and lhttps:formvalue(section) and (#(lhttps:formvalue(section)) > 0) then
|
|
for k, v in pairs(lhttps:formvalue(section)) do
|
|
if v and (v ~= "") then
|
|
have_https_listener = true
|
|
break
|
|
end
|
|
end
|
|
end
|
|
if not (have_http_listener or have_https_listener) then
|
|
return nil, "must listen on at list one address:port"
|
|
end
|
|
return DynamicList.validate(self, value, section)
|
|
end
|
|
|
|
o = ucs:option(Flag, "redirect_https", translate("Redirect all HTTP to HTTPS"))
|
|
o.default = o.enabled
|
|
o.rmempty = false
|
|
o.description = translate("Redirect all HTTP to HTTPS when SSl cert was installed")
|
|
|
|
o = ucs:option(Flag, "rfc1918_filter", translate("Ignore private IPs on public interface"), translate("Prevent access from private (RFC1918) IPs on an interface if it has an public IP address"))
|
|
o.default = o.enabled
|
|
o.rmempty = false
|
|
|
|
return m
|