From 48e06817daf525eb552e064ac94428297d35941b Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 4 Jun 2008 22:41:58 +0000 Subject: [PATCH] * 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 --- .../controller/luci_statistics/luci_statistics.lua | 10 +++++++--- libs/web/luasrc/dispatcher.lua | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) 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 ae1679bee7..df20d58d0e 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 025ae382d0..ef6c6881b4 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 -- 2.30.2