From 840f45ecc5a1d3e6db0b57ff6234e37609852734 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Fri, 18 May 2018 18:17:31 +0200 Subject: [PATCH] luci-app-adblock: respect SimpleForm size limit * respect SimpleForm size limit of 100KB for advanced online editing Signed-off-by: Dirk Brenken --- .../model/cbi/adblock/blacklist_tab.lua | 21 +++++++++---------- .../model/cbi/adblock/configuration_tab.lua | 21 +++++++++++++------ .../model/cbi/adblock/whitelist_tab.lua | 20 +++++++++--------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua index 86ebdd0e1..39688dc19 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/blacklist_tab.lua @@ -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 -local fs = require("nixio.fs") -local util = require("luci.util") -local uci = require("luci.model.uci").cursor() +local fs = require("nixio.fs") +local util = require("luci.util") +local uci = require("luci.model.uci").cursor() local adbinput = uci:get("adblock", "blacklist", "adb_src") or "/etc/adblock/adblock.blacklist" -if not nixio.fs.access(adbinput) then - m = SimpleForm("error", nil, - translate("Input file not found, please check your configuration.")) +if not fs.access(adbinput) then + m = SimpleForm("error", nil, translate("Input file not found, please check your configuration.")) m.reset = false m.submit = false return m end -if nixio.fs.stat(adbinput).size > 524288 then +if fs.stat(adbinput).size >= 102400 then 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.")) m.reset = false m.submit = false @@ -38,11 +37,11 @@ f.rows = 20 f.rmempty = true function f.cfgvalue() - return nixio.fs.readfile(adbinput) or "" + return fs.readfile(adbinput) or "" end 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 function s.handle(self, state, data) diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua index 1d89485e7..78636038b 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/configuration_tab.lua @@ -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 -local fs = require("nixio.fs") -local util = require("luci.util") +local fs = require("nixio.fs") +local util = require("luci.util") 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.reset = false m.submit = false return m 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:append(Template("adblock/config_css")) m.submit = translate("Save") @@ -25,11 +34,11 @@ f.rows = 20 f.rmempty = true function f.cfgvalue() - return nixio.fs.readfile(adbinput) or "" + return fs.readfile(adbinput) or "" end 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 function s.handle(self, state, data) diff --git a/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua b/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua index e5a05cf4c..01d3911f6 100644 --- a/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua +++ b/applications/luci-app-adblock/luasrc/model/cbi/adblock/whitelist_tab.lua @@ -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 -local fs = require("nixio.fs") -local util = require("luci.util") -local uci = require("luci.model.uci").cursor() +local fs = require("nixio.fs") +local util = require("luci.util") +local uci = require("luci.model.uci").cursor() 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.reset = false m.submit = false return m end -if nixio.fs.stat(adbinput).size > 524288 then +if fs.stat(adbinput).size >= 102400 then m = SimpleForm("error", nil, - translate("The file size is too large for online editing in LuCI (> 512 KB). ") - .. translate("Please edit this file directly in a terminal session.")) + 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 @@ -37,11 +37,11 @@ f.rows = 20 f.rmempty = true function f.cfgvalue() - return nixio.fs.readfile(adbinput) or "" + return fs.readfile(adbinput) or "" end 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 function s.handle(self, state, data) -- 2.25.1