From e56e442d6af125522214a9bc9ab957ac39c5c0c8 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 15 Apr 2020 22:25:48 +0200 Subject: [PATCH] luci-base: implement JSON endpoint to fetch menu information Signed-off-by: Jo-Philipp Wich --- modules/luci-base/luasrc/controller/admin/index.lua | 12 ++++++++++++ .../root/usr/share/luci/menu.d/luci-base.json | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/modules/luci-base/luasrc/controller/admin/index.lua b/modules/luci-base/luasrc/controller/admin/index.lua index 68bbd38a71..736d0cdccf 100644 --- a/modules/luci-base/luasrc/controller/admin/index.lua +++ b/modules/luci-base/luasrc/controller/admin/index.lua @@ -182,3 +182,15 @@ function action_ubus() luci.http.prepare_content("application/json") luci.http.write_json(response) end + +function action_menu() + local dsp = require "luci.dispatcher" + local utl = require "luci.util" + local http = require "luci.http" + + local acls = utl.ubus("session", "access", { ubus_rpc_session = http.getcookie("sysauth") }) + local menu = dsp.menu_json(acls or {}) or {} + + http.prepare_content("application/json") + http.write_json(menu) +end diff --git a/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json b/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json index 2490823a16..daad2f633a 100644 --- a/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json +++ b/modules/luci-base/root/usr/share/luci/menu.d/luci-base.json @@ -136,5 +136,14 @@ "function": "action_confirm" }, "auth": {} + }, + + "admin/menu": { + "action": { + "type": "call", + "module": "luci.controller.admin.index", + "function": "action_menu" + }, + "auth": {} } } -- 2.30.2