Add menu tree annotations for node readonly and dependency satisfied state
in order to ensure that unreachable menu nodes are hidden from view.
Fixes: ded8ccf93e ("luci-base-ucode: add initial ucode based LuCI runtime")
Ref: https://forum.openwrt.org/t/x/141426/10
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
return tree;
}
+function apply_tree_acls(node, acl) {
+ for (let name, spec in node?.children)
+ apply_tree_acls(spec, acl);
+
+ if (node?.depends?.acl) {
+ switch (check_acl_depends(node.depends.acl, acl["access-group"])) {
+ case null: node.satisfied = false; break;
+ case false: node.readonly = true; break;
+ }
+ }
+}
+
function menu_json(acl) {
tree ??= build_pagetree();
+ if (acl)
+ apply_tree_acls(tree, acl);
+
return tree;
}