Merge pull request #1801 from dibdot/adblock

luci-app-adblock: respect SimpleForm size limit
This commit is contained in:
Dirk Brenken 2018-05-18 18:31:07 +02:00 committed by GitHub
commit 72fe5dd703
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 27 deletions

View file

@ -1,22 +1,21 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org) -- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0 -- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs") local fs = require("nixio.fs")
local util = require("luci.util") local util = require("luci.util")
local uci = require("luci.model.uci").cursor() local uci = require("luci.model.uci").cursor()
local adbinput = uci:get("adblock", "blacklist", "adb_src") or "/etc/adblock/adblock.blacklist" local adbinput = uci:get("adblock", "blacklist", "adb_src") or "/etc/adblock/adblock.blacklist"
if not nixio.fs.access(adbinput) then if not fs.access(adbinput) then
m = SimpleForm("error", nil, m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
translate("Input file not found, please check your configuration."))
m.reset = false m.reset = false
m.submit = false m.submit = false
return m return m
end end
if nixio.fs.stat(adbinput).size > 524288 then if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil, m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (> 512 KB). ") translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session.")) .. translate("Please edit this file directly in a terminal session."))
m.reset = false m.reset = false
m.submit = false m.submit = false
@ -38,11 +37,11 @@ f.rows = 20
f.rmempty = true f.rmempty = true
function f.cfgvalue() function f.cfgvalue()
return nixio.fs.readfile(adbinput) or "" return fs.readfile(adbinput) or ""
end end
function f.write(self, section, data) function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end end
function s.handle(self, state, data) function s.handle(self, state, data)

View file

@ -1,17 +1,26 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org) -- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0 -- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs") local fs = require("nixio.fs")
local util = require("luci.util") local util = require("luci.util")
local adbinput = "/etc/config/adblock" local adbinput = "/etc/config/adblock"
if not nixio.fs.access(adbinput) then if not fs.access(adbinput) then
m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
m.reset = false m.reset = false
m.submit = false m.submit = false
return m return m
end end
if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session."))
m.reset = false
m.submit = false
return m
end
m = SimpleForm("input", nil) m = SimpleForm("input", nil)
m:append(Template("adblock/config_css")) m:append(Template("adblock/config_css"))
m.submit = translate("Save") m.submit = translate("Save")
@ -25,11 +34,11 @@ f.rows = 20
f.rmempty = true f.rmempty = true
function f.cfgvalue() function f.cfgvalue()
return nixio.fs.readfile(adbinput) or "" return fs.readfile(adbinput) or ""
end end
function f.write(self, section, data) function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end end
function s.handle(self, state, data) function s.handle(self, state, data)

View file

@ -1,22 +1,22 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org) -- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0 -- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs") local fs = require("nixio.fs")
local util = require("luci.util") local util = require("luci.util")
local uci = require("luci.model.uci").cursor() local uci = require("luci.model.uci").cursor()
local adbinput = uci:get("adblock", "global", "adb_whitelist") or "/etc/adblock/adblock.whitelist" local adbinput = uci:get("adblock", "global", "adb_whitelist") or "/etc/adblock/adblock.whitelist"
if not nixio.fs.access(adbinput) then if not fs.access(adbinput) then
m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
m.reset = false m.reset = false
m.submit = false m.submit = false
return m return m
end end
if nixio.fs.stat(adbinput).size > 524288 then if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil, m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (> 512 KB). ") translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session.")) .. translate("Please edit this file directly in a terminal session."))
m.reset = false m.reset = false
m.submit = false m.submit = false
return m return m
@ -37,11 +37,11 @@ f.rows = 20
f.rmempty = true f.rmempty = true
function f.cfgvalue() function f.cfgvalue()
return nixio.fs.readfile(adbinput) or "" return fs.readfile(adbinput) or ""
end end
function f.write(self, section, data) function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n") return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end end
function s.handle(self, state, data) function s.handle(self, state, data)