From: Jo-Philipp Wich Date: Wed, 4 Jun 2008 22:41:58 +0000 (+0000) Subject: * luci/statistics: moving the graph controller to admin caused the images to be gener... X-Git-Tag: 0.8.0~880 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=48e06817daf525eb552e064ac94428297d35941b * luci/statistics: moving the graph controller to admin caused the images to be generated by the root user which rendered the linked-in public statistics pages unusable because of missing permissions to write the generated graphics as nobody to directories created by root * luci/core: store the actual dispatching path to .path in node() - this permits dispatcher modules to get the canonical path as luci.dispatcher.dispatched.path --- diff --git a/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua index ae1679bee..df20d58d0 100644 --- a/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua +++ b/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua @@ -70,7 +70,10 @@ function index() -- output views - entry( { "admin", "statistics", "graph" }, call("statistics_index"), _i18n("graphs"), 80).i18n = "statistics" + local page = entry( { "admin", "statistics", "graph" }, call("statistics_index"), _i18n("graphs"), 80) + page.i18n = "statistics" + page.setuser = "nobody" + page.setgroup = "nogroup" local vars = luci.http.formvalues() local span = vars.timespan or nil @@ -142,13 +145,14 @@ function statistics_render() local vars = luci.http.formvalues() local req = luci.dispatcher.request + local path = luci.dispatcher.dispatched.path local uci = luci.model.uci.Session() local spans = luci.util.split( uci:get( "luci_statistics", "collectd_rrdtool", "RRATimespans" ), "%s+", nil, true ) local span = vars.timespan or uci:get( "luci_statistics", "rrdtool", "default_timespan" ) or spans[1] local graph = luci.statistics.rrdtool.Graph( luci.util.parse_units( span ) ) - local plugin = req[4] - local instances = { req[5] } + local plugin = path[4] + local instances = { path[5] } local images = { } -- no instance requested, find all instances diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 025ae382d..ef6c6881b 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -336,6 +336,8 @@ function node(...) c = c.nodes[v] end + c.path = arg + return c end